2008-10-20 24 views
26

estoy tratando de utilizar log4net en una aplicación ASP.NET con Visual Studio 2005. He declarado una instancia del registrador de este modo:¿Cómo configuro log4net para que log.IsDebugEnabled sea verdadero?

Private Shared ReadOnly log As ILog = LogManager.GetLogger("") 

Estoy tratando de utilizar de la siguiente manera:

If log.IsDebugEnabled Then 
    log.Debug("Integration Services Constructed") 
End If 

Aquí está mi configuración:

<log4net> 

    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="RollingFileAppender" /> 
    </root> 

    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="..\\logs\\logfile.log"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Size"/> 
     <maxSizeRollBackups value="10"/> 
     <maximumFileSize value="1MB"/> 
     <staticLogFileName value="true"/> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
     </layout> 
     <filter type="log4net.Filter.LevelRangeFilter"> 
      <param name="LevelMin" value="DEBUG" /> 
      <param name="LevelMax" value="FATAL" /> 
     </filter> 
    </appender> 

</log4net> 

Desafortunadamente, log.IsDebugEnabled siempre es falsa.
¿Cómo configuro log4net para que solo pueda registrar mensajes de depuración?

Respuesta

42

Antes de llamar LogManager.GetLogger ("")

Tienes que llamar log4net.Config.XmlConfigurator.Configure(); En una aplicación ASP.NET es probable que desee poner esta llamada en Application_Start

24

Sí, me gusta como dijo Anson. Además, si usted está llamando Configurar en una biblioteca de clases que puede hacer que al añadir un atributo a su clase:

[assembly: XmlConfigurator(Watch = true)] 

y si está utilizando log4net.config archivo, usarlo como que en lugar:

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

Si está utilizando un archivo de configuración independiente para log4net, haga lo siguiente: después de seguir todas las otras instrucciones de configuración, asegúrese de que u haga clic derecho sobre el archivo en el explorador de soluciones de visual Studio, seleccione propiedades, expanda el grupo de opciones "avanzadas" , configure el valor "Copiar en directorio de salida" como "Copiar siempre". Eso hará la magia ... :) ¡salud!

0

utilizar esto en cualquier método antes de utilizar log:

log4net.Config.XmlConfigurator.Configure();

En app.config, los ajustes deben ser:

<root> 
     <level value="ALL" /> 
     <appender-ref ref="AppenderName" /> 
    </root> 
1

VB.NET -

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)> 
2

Si está configurando log4net en código en lugar de en un archivo de configuración, puede llamar log4net.Config.BasicConfigurator.Configure antes de GetLogger.

Cuestiones relacionadas