Программная настройка log4net для записи одинаковых сообщений в два отдельных файла

StackOverflow https://stackoverflow.com/questions/1415535

  •  06-07-2019
  •  | 
  •  

Вопрос

Сейчас я программно настраиваю log4net, создавая экземпляр RollingFileAppender, затем вызывая BasicConfigurator.Configure (). Это прекрасно работает, но я пытаюсь создать два идентичных файла - один в каталоге с метками времени, который создается для каждого запуска приложения, другой в статическом месте, чтобы разработчику было проще отслеживать самый последний журнал. (это используется только для запуска автоматических тестов, поэтому создание огромного количества каталогов не является проблемой)

В идеале, я бы хотел, чтобы файлы были полностью идентичными, но я понимаю, что log4net может не сделать это возможным. Если у них разные имена в логгере, это нормально - до тех пор, пока я могу записать одну инструкцию в оба лог-файла.

Мой текущий код:

IAppender appender = new RollingFileAppender
{
    ...
}

appender.ActivateOptions();

BasicConfigurator.Configure(appender);
Это было полезно?

Решение

Хотя вполне возможно сделать это полностью программно, мне не хочется объяснять здесь API, его достаточно легко найти.

Безусловно, самый простой и гибкий способ - настроить два приложения, которые будут читать его из файла конфигурации. Вы можете принудительно вызвать это, вызвав log4net.Config.XmlConfigurator.Configure (), и даже можете передать XmlElement в Configure (), если хотите сохранить все это в коде.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top