Как настроить log4net для отката - PullRequest
3 голосов
/ 14 июля 2010

Это моя ситуация. Я успешно реализовал ведение журнала в удаленном системном журнале, используя log4net. Однако, насколько я мог проверить, если IP-адрес системного журнала недействителен, все сообщения нигде не будут регистрироваться, и никаких исключений не возникает. Это просто ничего не делает.

Следовательно, было бы неплохо иметь некоторый запасной вариант. Допустим, если запись в системный журнал не удалась, запишите в файл или в базу данных.

Это возможно даже с log4net? Или мне нужно настроить его для одновременной регистрации в двух местах?

1 Ответ

3 голосов
/ 14 июля 2010

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

Если ваше приложение может съесть затраты на ведение журнала, простейшим решением будет войти в систему по умолчанию для альтернативного приложения.

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

Из Часто задаваемые вопросы log4net :

Вы можете реализовать интерфейс log4net.Appender.IAppender, чтобы создать свой собственный настроенный appender.,Мы рекомендуем расширять класс log4net.Appender.AppenderSkeleton, а не начинать с нуля.Вы должны реализовать свой собственный код в сборке, отдельной от сборки log4net.

Для начала стоит взглянуть на источник log4net.Appender.TraceAppender в качестве примера минимального объема кода, необходимого для работы приложения.

Третий вариантбыло бы посмотреть на исходный код вашего аппендера и посмотреть, сможете ли вы его разветвить и выполнить необходимые настройки там.

...