Программная настройка log4net для записи одинаковых сообщений в два отдельных файла
Вопрос
Сейчас я программно настраиваю log4net, создавая экземпляр RollingFileAppender, затем вызывая BasicConfigurator.Configure (). Это прекрасно работает, но я пытаюсь создать два идентичных файла - один в каталоге с метками времени, который создается для каждого запуска приложения, другой в статическом месте, чтобы разработчику было проще отслеживать самый последний журнал. (это используется только для запуска автоматических тестов, поэтому создание огромного количества каталогов не является проблемой)
В идеале, я бы хотел, чтобы файлы были полностью идентичными, но я понимаю, что log4net может не сделать это возможным. Если у них разные имена в логгере, это нормально - до тех пор, пока я могу записать одну инструкцию в оба лог-файла.
Мой текущий код:
IAppender appender = new RollingFileAppender
{
...
}
appender.ActivateOptions();
BasicConfigurator.Configure(appender);
Решение
Хотя вполне возможно сделать это полностью программно, мне не хочется объяснять здесь API, его достаточно легко найти.
Безусловно, самый простой и гибкий способ - настроить два приложения, которые будут читать его из файла конфигурации. Вы можете принудительно вызвать это, вызвав log4net.Config.XmlConfigurator.Configure (), и даже можете передать XmlElement в Configure (), если хотите сохранить все это в коде.