On my asp webforms app I would do the log4net initialization;
log4net.Config.XmlConfigurator.Configure();
on global.asax on Application_Sta
Adding:
XmlConfigurator.Configure();
to the constructor of each of service classes did the trick for me.
I usually do this in the constructor of my service class, but I check if log4net is already configured:
if (!LogManager.GetRepository().Configured)
{
// configure log4net...
}
I think if you really want to avoid this you would have to write your own service factory and perform the configuration there.
Same thing: Application_Start
. After all it is an ASP.NET application. For self hosting services you could configure log4net
just before starting the host.