В log4net, как я могу вызвать Config.XmlConfigurator только один раз для решения? - PullRequest
2 голосов
/ 07 июня 2011

Я только начинаю с log4net. Чтобы прочитать файл конфигурации XML, я понимаю, что вы должны поместить в файл AssemblyInfo вашего проекта следующее:

<Assembly: log4net.Config.XmlConfigurator(ConfigFile:="Log4net.Config", Watch:=True)> 

У меня есть решение с несколькими проектами, и мне кажется, что я должен поместить это утверждение в каждый файл AssemblyInfo в решении (по одному для каждого проекта). Я попытался просто поместить оператор в AssemblyInfo проекта запуска, но регистрация вызовов в других проектах не будет работать. Я должен включить заявление в каждый проект, который делает запись звонков.

1) Есть ли способ сделать вызов Config.XmlConfigurator в одном месте, один раз для всего решения?

2) Что вызывает поведение, которое я вижу?

Ответы [ 2 ]

3 голосов
/ 07 июня 2011

Вы должны поместить это в сборку, которая "размещает" ваше решение.В приложении console / winform / wpf в сборке, которая компилируется в «.exe», в веб-приложении я обычно вызываю явно XmlConfigurator.Configure(); в событии Application-Start.

1 голос
/ 07 июня 2011

Почему бы не использовать статический конструктор в классе, на который будут ссылаться все сборки?Если они находятся в одном домене приложения, он будет вызван ровно один раз.

...