Tutorial Log4net

En este tutorial exploraremos como configurar y utilizar Log4net. Puede descargar el codigo fuente y ejecutar la aplicacion de ejemplo.

Primero debemos descargar la libreria desde el sitio de la Fundacion Apache. Para este tutorial descargamos el archivo log4net-1.2.11-bin-newkey.zip. Al descomprimir este archivo encontramos la documentacion de la libreria y archivos binarios compilados para las diferentes versiones de .NET. Usaremos .NET Framework 4.0 Client Profile dado que probaremos log4net con una aplicacion Windows Forms.

Log4net esta compuesto solo de un ensamblado: "log4net.dll". Debemos agregar una referencia a este ensamblado para poder usar la libreria en nuestro proyecto.

La configuración de Log4net va a en el archivo de configuración de la aplicacion (app.config o web.config). Lo primero es agregar una entrada al nodo configSections, si el nodo configSections no esta entonces lo agregamos tambien. Con esto le estamos enseñando a .NET como procesar la información de configuracion de Log4net.

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

Luego agregamos la informacion de configuracion propiamente tal que va en un nodo de nombre "log4net" (ver codigo abajo).
Dentro del nodo "log4net" va el nodo "root" que define configuracion para todas las categorias, en este caso define que solo se registraran entradas con nivel "Info" o superior y que se registraran en el Appender "FileAppender" que se configura justo abajo.
El Appender "FileAppender" registra las entradas en un archivo de texto plano, asignamos "log-file.txt" como nombre del archivo. El nodo "conversionPattern" define el formato que tendra cada entrada del log, en el ejemplo parte con la fecha, luego el nivel, la categoria, el mensaje y finalmente un salto de linea.
Si no reconoce los conceptos Appender, Nivel o Categoria puede revisar el articulo que trata los Conceptos basicos de Log4net.

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

    <appender name="FileAppender" type="log4net.Appender.FileAppender">
      <file value="log-file.txt" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %-5level %logger - %message%newline" />
      </layout>
    </appender>
  </log4net>

Para usar Log4net en el codigo fuente importamos el espacio de nombres "log4net":

using log4net;

Log4net no lee automaticamente la configuración desde el archivo de configuracion. Hay varias formas de gatillar que Log4net lea la confuguración, incluso es posible definir que monitoree el archivo de configuracion y se reconfigure cuando detecte un cambio. En este tutorial usaremos la forma mas sencilla, el metodo XmlConfigurator.Configure(). Este metodo se llama una sola vez cuando la aplicación inicia.

log4net.Config.XmlConfigurator.Configure();

Ahora que la configuracion esta cargada podemos registrar entradas en el log. Para ello debemos obtener una instancia de un objeto "Logger". Logger es un objeto que implementa la interface ILog, la cual tiene diversos metodos que nos permiten escribir entradas en el log. Para obtener el Logger usamos el metodo LogManager.GetLogger() como se aprecia en el codigo abajo.
Cada Logger tiene una categoria, el nombre de la categoria lo define el programador pasandolo como parametro al metodo LogManager.GetLogger().
El objeto Logger tiene metodos para ingresar entradas en cada uno de los niveles de prioridad: Debug(), Info(), Warn(), Error() y Fatal(). Los niveles de prioridad y la categoria del Logger nos permiten decidir que entradas se registran y en que destinos (Appenders) se registran, son formas de clasificacion.
En este ejemplo registraremos una entrada con nivel Error, con el Logger de categoria "MiCategoria" y el mensaje sera "Esto es un error.".

ILog logger = LogManager.GetLogger("MiCategoria");
logger.Error("Esto es un error.");

Dado que en el archivo de configuracion definimos que se registren entradas con nivel Info o superior, la entrada Error cumple el requisito y sera registrada en el archivo de texto. Si abrimos el archivo log-file.txt, que se encuentra en la misma carpeta que el archivo ejecutable de la aplicacion, veremos la entrada registrada.

Con esto concluimos el tutorial introductorio de Log4net. Hemos descargado la libreria, agregado la referencia a nuetro proyecto, configurado log4net para que registre entradas en un archivo de texto, y registramos una entrada con nivel de Error.
Para continuar aprendiendo Log4net recomendamos revisar Ejemplos Log4net (Proximamente) que presenta diversos ejemplos de configuracion y uso. O puede repasar los Conceptos Basicos de Log4net donde se describe que entendemos por Appender, Categoria y Nivel.


Articulos relacionados