Есть ли разница между log4net.Config.BasicConfigurator.Configure () и log4net.Config.XmlConfigurator.Configure ()? - PullRequest
7 голосов
/ 06 марта 2010

Я использую log4Net для своей регистрации. У меня также есть следующий набор ...

<log4net debug="true"> .. </>

Хорошо, теперь, когда у меня есть следующий код

log4net.Config.BasicConfigurator.Configure();

На самом деле я не получаю никакой подробной внутренней отладочной информации, но мне действительно отображается все, что я регистрирую.

Теперь, когда я обменяю этот код и заменяю его следующим:

log4net.Config.XmlConfigurator.Configure();

Я получаю много информации о внутренней отладке xml и все, что я регистрирую, отображается.

Так почему это? какая разница между ними?

Ответы [ 2 ]

6 голосов
/ 07 марта 2015

Да, есть.Если вы хотите сконфигурировать ваши логи в коде, а не из конфига, то вам следует использовать BasicConfigurator.@Aaronaught Ваш пост довольно старый, что может объяснить, почему ваше утверждение:

BasicConfigurator позволяет настроить только один аппендер в корневом каталоге и может войти только в консоль.

.. является неверным .Я использую BasicConfigurator для регистрации событий, файлов и баз данных по состоянию на март 2015 года. Он также поддерживает несколько приложений для каждого регистратора.Мой log4net настраивается программно, а не из файла конфигурации.

5 голосов
/ 06 марта 2010

BasicConfigurator разрешает настройку только одного аппендера в корневом каталоге и может только входить в консоль. Он не дает никакой отладочной информации, потому что не на самом деле никакой отладочной информации.

XmlConfigurator предоставляет полный набор параметров конфигурации log4net - подробности см. В разделе Конфигурация руководства. На самом деле он начинается с примера, использующего BasicConfigurator, и продолжает показывать вам все дополнительные свойства, которые вы можете установить в XML.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...