public void Configure(IConfig config) { _target.FileName = config.LogFilePath; foreach (var rule in _rules) { rule.Targets.Clear(); rule.Targets.Add(_target); if (!config.SuppressWpfOutput) { rule.Targets.Add(TorchUtils.GetWpfTarget()); } var minLevel = GetMinLogLevel(config); rule.DisableLoggingForLevel(LogLevel.Trace); rule.DisableLoggingForLevel(LogLevel.Debug); rule.EnableLoggingForLevels(minLevel, LogLevel.Off); Log.Info($"Reconfigured; pattern={rule.LoggerNamePattern}, wpf={!config.SuppressWpfOutput}, minlevel={minLevel}"); } LogManager.ReconfigExistingLoggers(); }
public FileLoggingConfigurator(string targetName, string[] namePatterns, string defaultFilePath) { _target = new FileTarget { Name = targetName, }; _target.FileName = defaultFilePath; _rules = new LoggingRule[namePatterns.Length]; for (var i = 0; i < namePatterns.Length; i++) { var rule = new LoggingRule { LoggerNamePattern = namePatterns[i], Final = true, }; rule.Targets.Add(_target); rule.Targets.Add(TorchUtils.GetWpfTarget()); rule.EnableLoggingForLevels(LogLevel.Info, LogLevel.Off); _rules[i] = rule; } }