internal LoggerConfiguration GetConfigurationForLogger(string name, LoggingConfiguration config) { TargetWithFilterChain[] targetsByLevel = new TargetWithFilterChain[LogLevel.MaxLevel.Ordinal + 1]; TargetWithFilterChain[] lastTargetsByLevel = new TargetWithFilterChain[LogLevel.MaxLevel.Ordinal + 1]; if (config != null && IsLoggingEnabled()) { GetTargetsByLevelForLogger(name, config.LoggingRules, targetsByLevel, lastTargetsByLevel); } InternalLogger.Debug("Targets for {0} by level:", name); for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(CultureInfo.InvariantCulture, "{0} =>", LogLevel.FromOrdinal(i)); for (TargetWithFilterChain afc = targetsByLevel[i]; afc != null; afc = afc.Next) { sb.AppendFormat(CultureInfo.InvariantCulture, " {0}", afc.Target.Name); if (afc.FilterChain.Count > 0) { sb.AppendFormat(CultureInfo.InvariantCulture, " ({0} filters)", afc.FilterChain.Count); } } InternalLogger.Debug(sb.ToString()); } return(new LoggerConfiguration(targetsByLevel)); }
internal LoggerConfiguration GetConfigurationForLogger(string name, LoggingConfiguration configuration) { TargetWithFilterChain[] targetsByLevel = new TargetWithFilterChain[LogLevel.MaxLevel.Ordinal + 1]; TargetWithFilterChain[] lastTargetsByLevel = new TargetWithFilterChain[LogLevel.MaxLevel.Ordinal + 1]; bool[] suppressedLevels = new bool[LogLevel.MaxLevel.Ordinal + 1]; if (configuration != null && this.IsLoggingEnabled()) { this.GetTargetsByLevelForLogger(name, configuration.LoggingRules, targetsByLevel, lastTargetsByLevel, suppressedLevels); } InternalLogger.Debug("Targets for {0} by level:", name); for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { StringBuilder sb = new StringBuilder(); sb.AppendFormat(CultureInfo.InvariantCulture, "{0} =>", LogLevel.FromOrdinal(i)); for (TargetWithFilterChain afc = targetsByLevel[i]; afc != null; afc = afc.NextInChain) { sb.AppendFormat(CultureInfo.InvariantCulture, " {0}", afc.Target.Name); if (afc.FilterChain.Count > 0) { sb.AppendFormat(CultureInfo.InvariantCulture, " ({0} filters)", afc.FilterChain.Count); } } InternalLogger.Debug(sb.ToString()); } #pragma warning disable 618 return(new LoggerConfiguration(targetsByLevel, configuration != null && configuration.ExceptionLoggingOldStyle)); #pragma warning restore 618 }
public void SetLogLevel(string logLevel) { var level = LogLevel.FromString(logLevel); if (level == LogLevel.Off) { LogManager.DisableLogging(); } else { if (!LogManager.IsLoggingEnabled()) { LogManager.EnableLogging(); } foreach (var rule in LogManager.Configuration.LoggingRules) { rule.DisableLoggingForLevels(LogLevel.Trace, LogLevel.Fatal); // Iterate over all levels up to and including the target, (re)enabling them. for (var i = level.Ordinal; i <= 5; i++) { rule.EnableLoggingForLevel(LogLevel.FromOrdinal(i)); } } } LogManager.ReconfigExistingLoggers(); }
private void GetTargetsByLevelForLogger(string name, IEnumerable <LoggingRule> rules, TargetWithFilterChain[] targetsByLevel, TargetWithFilterChain[] lastTargetsByLevel, bool[] suppressedLevels) { //no "System.InvalidOperationException: Collection was modified" var loggingRules = new List <LoggingRule>(rules); foreach (LoggingRule rule in loggingRules) { if (!rule.NameMatches(name)) { continue; } for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { if (i < this.GlobalThreshold.Ordinal || suppressedLevels[i] || !rule.IsLoggingEnabledForLevel(LogLevel.FromOrdinal(i))) { continue; } if (rule.Final) { suppressedLevels[i] = true; } foreach (Target target in rule.Targets.ToList()) { var awf = new TargetWithFilterChain(target, rule.Filters); if (lastTargetsByLevel[i] != null) { lastTargetsByLevel[i].NextInChain = awf; } else { targetsByLevel[i] = awf; } lastTargetsByLevel[i] = awf; } } // Recursively analyze the child rules. this.GetTargetsByLevelForLogger(name, rule.ChildRules, targetsByLevel, lastTargetsByLevel, suppressedLevels); } for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { TargetWithFilterChain tfc = targetsByLevel[i]; if (tfc != null) { tfc.PrecalculateStackTraceUsage(); } } }
internal void GetTargetsByLevelForLogger(string name, IList <LoggingRule> rules, TargetWithFilterChain[] targetsByLevel, TargetWithFilterChain[] lastTargetsByLevel) { foreach (LoggingRule rule in rules) { if (!rule.NameMatches(name)) { continue; } for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { if (i < this.GlobalThreshold.Ordinal || !rule.IsLoggingEnabledForLevel(LogLevel.FromOrdinal(i))) { continue; } foreach (Target target in rule.Targets) { var awf = new TargetWithFilterChain(target, rule.Filters); if (lastTargetsByLevel[i] != null) { lastTargetsByLevel[i].NextInChain = awf; } else { targetsByLevel[i] = awf; } lastTargetsByLevel[i] = awf; } } this.GetTargetsByLevelForLogger(name, rule.ChildRules, targetsByLevel, lastTargetsByLevel); if (rule.Final) { break; } } for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { TargetWithFilterChain tfc = targetsByLevel[i]; if (tfc != null) { tfc.PrecalculateStackTraceUsage(); } } }
internal void GetTargetsByLevelForLogger(string name, LoggingRuleCollection rules, TargetWithFilterChain[] targetsByLevel, TargetWithFilterChain[] lastTargetsByLevel) { foreach (LoggingRule rule in rules) { if (rule.NameMatches(name)) { for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { if (i >= GlobalThreshold.Ordinal && rule.IsLoggingEnabledForLevel(LogLevel.FromOrdinal(i))) { foreach (Target target in rule.Targets) { TargetWithFilterChain awf = new TargetWithFilterChain(target, rule.Filters); if (lastTargetsByLevel[i] != null) { lastTargetsByLevel[i].Next = awf; } else { targetsByLevel[i] = awf; } lastTargetsByLevel[i] = awf; } } } GetTargetsByLevelForLogger(name, rule.ChildRules, targetsByLevel, lastTargetsByLevel); if (rule.Final) { break; } } } for (int i = 0; i <= LogLevel.MaxLevel.Ordinal; ++i) { TargetWithFilterChain tfc = targetsByLevel[i]; if (tfc != null) { tfc.PrecalculateNeedsStackTrace(); } } }
private static NLogLevel Convert(LogLevel logLevel) { return(NLogLevel.FromOrdinal((int)logLevel)); }