tags:

views:

491

answers:

2

On my asp webforms app I would do the log4net initialization;

log4net.Config.XmlConfigurator.Configure();

on global.asax on Application_Start so that it is done once when the application starts.

What is the right way of configuring log4net for IIS hosted WCF apps(asking specifically about where to place this line which event to use etc) so that log4net gets initialized once on and there is no unnecessary initializations.

+1  A: 

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.

Darin Dimitrov
I added a global.asax and enabled ASPNetCompatibility through webconfig and service attributes. I currently get a hit on Application_BeginRequest and Session_Start but Application_Start never gets hit. Any idea why this would happen? I kill all w3wp before debugging to make sure application is starting for first time..
kaivalya
+1  A: 

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.

Stefan Egli