Guía Rápida de Log4Net en Archivos

Log4Net para Archivos

Log4Net es una potente librería para escribir log, licenciada cómo software libre con Apache Software Licence.

Para mi gusto la característica más interesante que presenta la librería, es la facilidad de escribir líneas de log a través de diferentes medios como pueden ser (archivo de texto plano, base de datos, registro de Windows, etc.) y todo con el menor impacto posible en la performance de la aplicación.

En este post colocaré ejemplos de configuración de logging para archivos la idea es de forma rápida dejar el log en nuestras aplicaciones funcionando.

Es importante destacar que el objetivo de este post es explicar las funcionalidades básicas utilizadas en el ejemplo y no profundizar en todo el abanico de posibilidades que ofrece log4net.

Logging en Archivos

El primer paso es incluir la configuración en el app.config o web.config dependiendo del proyecto sobre el que se esté trabajando.

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

<log4net>
     <appender name="FileAppender" type="log4net.Appender.RollingFileAppender" >
     <file value="D:\\Desarrollo\\LogDemo\\logFile.log" />
 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
     <appendToFile value="true" />
     <rollingStyle value="Size" />
     <maxSizeRollBackups value="10" />
     <maximumFileSize value="150KB" />
 
     <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - %level - %type.%method - %message%n" />
     </layout>
     </appender>
 <root>
     <level value="All" />
     <appender-ref ref="FileAppender" />
 </root>
 </log4net>

Esta es la configuración básica que yo suelo utilizar para el log en archivos, es bastante simple y en la misma configuro básicamente la forma en la que se escriben los archivos, el tamaño máximo, la cantidad de respaldos máxima que habrá que mantener y por supuesto el patrón que tendrá cada línea del log.

Partes de la Configuración

  • file: es donde se específica el nombre del archivo y la dirección.
  • lockingModel: indica la forma en la que se bloquea el archivo al momento de escribirse, es muy importante ya que sin este parámetro la aplicación podría bloquear el archivo por tiempo indeterminado.
  • appendToFile: Este parámetro en true indica que se agregará al final del archivo las nuevas líneas
  • rollingStyle: Con este parámetro se indica el criterio para crear un nuevo archivo, en este ejemplo cuando el archivo llega a 150kb se finaliza y se crea uno nuevo.
  • maxSizeRollBackups: Configura el número máximo de archivos que se mantendrán, en nuestro ejemplo son 10, pasada esa cantidad se comienzan a eliminar los más viejos.
  • maximumFileSize: Setea el tamaño máximo que puede tener un archivo, en nuestro ejemplo 150KB.
  • layout: Elemento que indica cómo debe ser cada línea del log.
  • conversionPattern: especifica la información que compone cada línea del log, en el caso que estamos realizando la línea de log del ejemplo quedaría como la siguiente:

2016-12-01 17:58:59,808 – ERROR – AppLog4Net.Program.Testing – Error Message: Index and length must refer to a location within the string. Parameter name: length System.ArgumentOutOfRangeException: Index and length must refer to a location within the string. Parameter name: length at System.String.Substring(Int32 startIndex, Int32 length)  at AppLog4Net.Program.Testing() in D:\Progrmación\AppLog4Net\AppLog4Net\Program.cs:line 27

El Segundo paso importante es agregar la siguiente línea de código.
La idea es que “log” se accesible desde todo el código de nuestra aplicación.

log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));

Y el último paso es utilizarlo.

log.Error("Error Message: " + ex.Message.ToString(), ex);

ILog permite utilizar los siguientes tipos de log:

  • Error
  • Warn
  • Info
  • Debug
  • Fatal

En fin si tienes alguna duda puedes comunicarte conmigo a través del formulario de Contactar.