2010-03-15 14 views
11

En mi aplicación asp webforms haría la inicialización de log4net;Cómo configurar log4net para WCF

log4net.Config.XmlConfigurator.Configure(); 

en global.asax en Application_Start para que se haga una vez cuando se inicia la aplicación.

¿Cuál es la forma correcta de configurar log4net para aplicaciones WCF alojadas en IIS (preguntando específicamente dónde colocar esta línea qué evento usar, etc.) para que log4net se inicialice una vez y no haya inicializaciones innecesarias.

Respuesta

3

Lo mismo: Application_Start. Después de todo, es una aplicación ASP.NET. Para servicios de alojamiento propio, puede configurar log4net justo antes de iniciar el host.

+1

Agregué un archivo global.asax y habilité la compatibilidad de ASPNet a través de la configuración web y los atributos del servicio. Actualmente recibo un golpe en Application_BeginRequest y Session_Start, pero Application_Start nunca se golpea. Alguna idea de por qué esto pasaría? Mato a todos w3wp antes de la depuración para asegurarme de que la aplicación se inicia por primera vez. – kaivalya

15

que suelo hacer esto en el constructor de mi clase de servicio, pero puedo comprobar si log4net ya está configurado:

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

Creo que si realmente quiere evitar esto, se tiene que escribir su propia fábrica de servicios y realizar la configuración allí.

1

Adición:

XmlConfigurator.Configure(); 

al constructor de cada una de las clases de servicio hizo el truco para mí.

+3

Para mejorar la calidad de su publicación, incluya cómo/por qué este código resolverá el problema. –

Cuestiones relacionadas