На моем приложении веб-форм asp я сделал бы log4net инициализацию;
log4net.Config.XmlConfigurator.Configure();
на global.asax на Application_Start так, чтобы это было сделано однажды, когда приложение запускается.
То, что является правильным способом настроить log4net для IIS, разместило приложения WCF (выяснение конкретно о том, куда поместить эту строку, какое событие использовать и т.д.) так, чтобы log4net был инициализирован однажды на и нет никаких ненужных инициализаций.
То же: Application_Start
. В конце концов, это приложение ASP.NET. Для услуг собственного хостинга вы можете настроить log4net
непосредственно перед запуском хоста.
Я обычно делаю это в конструкторе моего класса обслуживания, но проверяю, настроен ли уже log4net:
if (!LogManager.GetRepository().Configured)
{
// configure log4net...
}
Я думаю, если вы действительно хотите избежать для этого вам нужно будет написать свою собственную фабрику служб и выполнить настройку там.