log4net no registra declaraciones de depuración
Frecuentes
Visto 20,645 veces
10
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
3 Respuestas
17
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
12
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
8
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 c# log4net or haz tu propia pregunta.
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. - Chris Sinclair