2011-05-05 20 views
6

Teniendo en cuenta que usted tiene¿Cuándo se configura Log4Net?

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

en su archivo AssemblyInfo.cs, cuando está configurado Log4net? ¿Está en el inicio de la aplicación o cuando usa un registrador por primera vez?

Respuesta

7

El archivo de configuración se utiliza cuando causa una llamada a la clase LoggerManager. Esto generalmente se produce llamando a LogManager.GetLogger.

Consulte http://logging.apache.org/log4net/release/sdk/log4net.Config.XmlConfiguratorAttribute.html para obtener más información; específicamente la nota:

Log4net solo buscará los atributos de configuración de nivel ensamblador una vez. Cuando se utiliza el nivel de ensamblado log4net atributos para controlar la configuración de log4net debe asegurar que la primera llamada a cualquiera de los métodos LoggerManager está hecho de la asamblea con la configuración atributos.

3

Una cita del sitio de log4net Apache:

Por lo tanto si utiliza los atributos de configuración se debe invocar log4net para que pueda leer los atributos. Una simple llamada a LogManager.GetLogger hará que se lean y procesen los atributos en el conjunto de llamadas. Por lo tanto, es imprescindible realizar una llamada de registro tan pronto como sea posible durante el inicio de la aplicación, y ciertamente antes de que se hayan cargado e invocado los ensamblados externos. http://logging.apache.org/log4net/release/manual/configuration.html

Aquí es un buen artículo sobre cómo asegurarse de que la configuración está configurado y funcione como es debido: http://www.fooji.net/blog/post/2010/04/27/logging-log4net-e28093-part-iii.aspx

Básicamente, es necesario o bien hacer una llamada de registro (que configura log4net si ISN 't ya configurado) o utilizar el DOMConfigurator para configurar manualmente log4net.

+0

El segundo enlace está roto. – codea

Cuestiones relacionadas