Как настроить log4net для WCF

В моем приложении asp webforms я бы выполнил инициализацию log4net;

log4net.Config.XmlConfigurator.Configure();

на global.asax на Application_Start, чтобы он выполнялся один раз, когда приложение запускается.

Каков правильный способ настройки log4net для IIS, размещенных в WCF-приложениях (в частности, о том, где разместить эту строку, какое событие использовать и т.д.), чтобы log4net инициализировался один раз и нет ненужных инициализаций.

Ответ 1

То же самое: Application_Start. В конце концов это приложение ASP.NET. Для самостоятельных хостинговых услуг вы можете настроить log4net непосредственно перед запуском хоста.

Ответ 2

Я обычно делаю это в конструкторе моего класса сервиса, но я проверяю, уже настроен ли log4net:

if (!LogManager.GetRepository().Configured)  
{  
  // configure log4net...  
} 

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

Ответ 3

Добавление:

XmlConfigurator.Configure();

для конструктора каждого из классов обслуживания помогло.