2010-03-15 2 views
11

В моем приложении asp webforms я бы выполнил инициализацию log4net;Как настроить log4net для WCF

log4net.Config.XmlConfigurator.Configure(); 

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

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

ответ

3

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

+1

Я добавил global.asax и включил ASPNetCompatibility через webconfig и атрибуты сервиса. В настоящее время я получаю удар по Application_BeginRequest и Session_Start, но Application_Start никогда не попадает. Любая идея, почему это произойдет? Я убиваю все w3wp перед отладкой, чтобы убедиться, что приложение запускается в первый раз. – kaivalya

15

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

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

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

1

Добавление:

XmlConfigurator.Configure(); 

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

+3

Чтобы улучшить качество вашего сообщения, пожалуйста, укажите, как/почему этот код решит проблему. –

Смежные вопросы