Когда настраивается Log4Net? - PullRequest
6 голосов
/ 05 мая 2011

Учитывая, что у вас есть

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)]

в вашем файле AssemblyInfo.cs, когда конфигурируется Log4Net?Это при запуске приложения или при первом использовании регистратора?

Ответы [ 2 ]

7 голосов
/ 05 мая 2011

Файл конфигурации используется, когда вы вызываете класс LoggerManager. Обычно это вызвано вызовом LogManager.GetLogger.

Подробнее см. http://logging.apache.org/log4net/release/sdk/log4net.Config.XmlConfiguratorAttribute.html; конкретно примечание:

Log4net будет искать только сборку атрибуты конфигурации уровня один раз. При использовании уровня сборки log4net атрибуты для управления Конфигурация log4net вы должны убедитесь, что первый звонок на любой из методы LoggerManager сделаны из сборка с конфигурацией атрибуты.

3 голосов
/ 05 мая 2011

Цитата с сайта Apache log4net:

Поэтому, если вы используете атрибуты конфигурации, вы должны вызвать log4net, чтобы позволить ему читать атрибуты.Простой вызов LogManager.GetLogger вызовет чтение и обработку атрибутов в вызывающей сборке.Поэтому крайне важно сделать запись в журнале как можно раньше во время запуска приложения и, конечно, до того, как какие-либо внешние сборки были загружены и вызваны.http://logging.apache.org/log4net/release/manual/configuration.html

Вот хорошая статья о том, как убедиться, что конфигурация настроена и работает должным образом: http://www.fooji.net/blog/post/2010/04/27/logging-log4net-e28093-part-iii.aspx

По сути, вам нужно либо сделать вызов регистрации(который настраивает log4net, если он еще не настроен) или использует DOMConfigurator для ручной настройки log4net.

...