Hay dos formas de configurar y utilizar log4net. El primero es cuando puedo configurar mi propio appender y registrador asociado:
<!-- language: xml -->
<appender name="myLogAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Logs\myLog.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%n" />
</layout>
</appender>
<logger name="myLog">
<level value="All"></level>
<appender-ref ref="myLogAppender" />
</logger>
Y luego, cuando quiero escribir algo en el registro, puedo hacer lo siguiente:
ILog log = LogManager.GetLogger("myLog");
log.Info("message");
Otra forma de usarlo es configurar root para que sea tan detallado como desee:
<!-- language: xml -->
<root>
<level value="Error" />
<appender-ref ref="myLogAppender" />
</root>
Y en este caso puedo registrar mensajes como este:
ILog log = LogManager.GetLogger(typeof(Bar));
log.Info("message");
Los beneficios del segundo enfoque es que puede habilitar o deshabilitar algunos mensajes sobre la marcha. Pero el problema es que estoy desarrollando en EPiServer CMS y tiene su propio sistema de registro que usa log4net y si habilito el registro de información en el nivel raíz, se escribirán muchos registros del sistema.
¿Cómo se usa log4net? Cada parte de un sistema escribe en su propio registrador, o todo está escrito en el registrador predeterminado, y la configuración decide qué hacer a continuación.