2012-05-22 12 views
9

Estoy utilizando log4net por primera vez y he seguido la documentación utilizando los ejemplos de configuración proporcionados, sin embargo, las declaraciones de depuración no se registran.log4net no está registrando las declaraciones de depuración

Todos los niveles de información, error, advertencia y fatal se registran correctamente. ¿Alguien puede decirme lo que me estoy perdiendo?

app.config:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 

<log4net> 
    <appender name="Console" type="log4net.Appender.ColoredConsoleAppender"> 

     <mapping> 
      <level value="INFO" /> 
      <foreColor value="Green"/> 
     </mapping> 

     <mapping> 
      <level value="DEBUG" /> 
      <foreColor value="Cyan,HighIntensity"/> 
     </mapping> 

     <mapping> 
      <level value="WARN" /> 
      <foreColor value="Purple,HighIntensity"/> 
     </mapping> 

     <mapping> 
      <level value="ERROR" /> 
      <foreColor value="Red,HighIntensity"/> 
     </mapping> 

     <mapping> 
      <level value="FATAL" /> 
      <foreColor value="Yellow,HighIntensity"/> 
     </mapping> 

     <layout type="log4net.Layout.PatternLayout"> 
      <!-- Pattern to output the caller's file name and line number --> 
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> 
     </layout>    
    </appender> 

    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 
     <file value="example.log" /> 
     <appendToFile value="true" /> 
     <maximumFileSize value="100KB" /> 
     <maxSizeRollBackups value="2" /> 

     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%level %thread %logger - %message%newline" /> 
     </layout> 
    </appender> 

    <root> 
     <level value="INFO" /> 
     <appender-ref ref="Console" /> 
     <appender-ref ref="RollingFile" /> 
    </root> 
</log4net> 

Algunas personas han mencionado la comprobación de AssemblyInfo [assembly: log4net.Config.XmlConfigurator()], sin embargo no hay ninguna diferencia con o sin esta línea.

Logger se declara como:

private static readonly ILog log = LogManager.GetLogger(typeof(CWD_Netsuite)); 

y se accede como:

XmlConfigurator.Configure(); 
log.Debug("Debugging");    //does not get logged 
log.Info("Entering Application"); //logged to console and log file 
log.Debug("Debug Statement");  //does not get logged 

log.Error("Error statement");  //logged to console and log file 
log.Warn("Warning statement"); //logged to console and log file 
log.Fatal("Fatal Statement");  //logged to console and log file 
+1

sólo para aclarar todas las respuestas a continuación, en la jerarquía de la tala Log4net, depurar es la más baja, por debajo de INFO. –

Respuesta

15

usted tiene un conjunto de filtros a INFO nivel en su categoría raíz (filtrando por lo tanto cualquier mensaje de DEBUG nivel) :

<root> 
    <level value="INFO" /> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="RollingFile" /> 
</root> 

Cambiar a

<level value="DEBUG" /> 
+0

Sabía que sería algo simple :) ¡Muchas gracias! –

8

Cambiar el valor del nivel de "debug" en su nodo ...

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="RollingFile" /> 
</root> 
12

El log4net niveles se definen en el siguiente orden:

TODO, DEBUG, INFO , WARN, ERROR , FATAL, OFF

sobre la base de su actual la configuración está escribiendo todo con INFO y más abajo.

Indica tu nodo raíz a lo siguiente:

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="Console" /> 
    <appender-ref ref="RollingFile" /> 
</root> 
Cuestiones relacionadas