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;
            }
        }