public static string Generate(LogChannelsConfig.Logger outputAPI, string nameSpace, List <LogChannelsConfig.Configuration> enabledConfigurations, List <LogChannelsConfig.ChannelAndMinSeverity> channelsAndMinSeverities)
    {
        string code = "";

        foreach (LogChannelsConfig.ChannelAndMinSeverity channelAndMinSeverity in channelsAndMinSeverities)
        {
            foreach (LogChannelsConfig.Severity severity in Enum.GetValues(typeof(LogChannelsConfig.Severity)))
            {
                code += Generate(outputAPI, nameSpace, enabledConfigurations, channelAndMinSeverity.Channel, severity, (int)severity >= (int)channelAndMinSeverity.MinSeverity);
            }
        }

        return(code);
    }
    public static string Generate(LogChannelsConfig.Logger outputAPI, string nameSpace, List <LogChannelsConfig.Configuration> enabledConfigurations, string channel, LogChannelsConfig.Severity severity, bool severityEnabled)
    {
        string conditionals = "";

        if (severityEnabled && (enabledConfigurations.Count > 0))
        {
            conditionals = string.Join(", ", enabledConfigurations.Select(configuration => string.Format("System.Diagnostics.Conditional(\"{0}\")", ConfigurationToString[configuration])).ToArray());
        }
        else
        {
            conditionals = "System.Diagnostics.Conditional(\"NOT_DEFINED\")";
        }

        return(Generate(outputAPI, nameSpace, conditionals, channel, severity));
    }