log4net no registra declaraciones de depuración

Estoy usando log4net por primera vez y he seguido la documentación utilizando las muestras de configuración proporcionadas, sin embargo, las declaraciones de depuración no se registran.

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

aplicación.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 verificar AssemblyInfo para [assembly: log4net.Config.XmlConfigurator()], sin embargo, no hay diferencia con o sin esta línea.

El registrador 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

preguntado el 22 de mayo de 12 a las 18:05

Solo para aclarar todas las respuestas a continuación, en la jerarquía de registro de Log4Net, DEBUG es el más bajo, debajo de INFO. -

3 Respuestas

Tienes un filtro configurado para INFO nivel en su categoría raíz (filtrando así cualquier mensaje de DEBUG nivel):

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

Cambiarlo a

    <level value="DEBUG" />

contestado el 22 de mayo de 12 a las 18:05

Los niveles de log4net se definen en el siguiente orden:

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

Según su configuración actual, está escribiendo todo con INFO y más abajo.

Establezca su nodo raíz en lo siguiente:

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

contestado el 22 de mayo de 12 a las 18:05

Cambie el valor del nivel a "DEBUG" en su nodo...

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

contestado el 22 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.