google analytics

martes, 24 de julio de 2012

Log4Net en C#

Siempre es importante tener logs en nuestras aplicaciones, sobretodo en entornos cerrados donde tengamos accesos limitados o cuando ocurre una excepción inesperada que nos pone los pelos de punta y no sabemos por donde atacar. Hace ya bastante tiempo vengo usando Log4Net y bueno como parece que ahora si le estoy dedicando tiempo al blog y tuve un pequeño problema hace poco que comentaré en el siguiente post, quise escribir sobre esto.

Lo primero, descargarse la release desde aquí:  http://logging.apache.org/log4net/download_log4net.cgi

Seleccionamos uno de los archivos binarios, descargamos, descrompimimos el archivo zip y vamos a la carpeta  "\bin\net\4.0\release"  en el cual encontraremos el archivo log4net.dll  y lo añademos como referencia a nuestro proyecto.

Lo siguiente es modificar el web.config. Añadimos la siguiente sección dentro del <configsections> del web.config:

    
.... .... ....
Lo siguiente es añadir la parte de la configuración para el log4net. En nuestro caso sólo queremos escribir sobre un archivo, pero aquí tienes muchas más opciones de configuración.

 
    
      
      
      
      
      
       
       
      
        
      
    
    
      
      
    


Dentro del appender ponemos la configuración necesaria sobre como queremos que se escriba nuestro log, esta claro que podemos tener varios appenders, por ejemplo uno para que escriba un archivo de texto y otro para que guarda en base de datos.

Luego desde la parte de root señalamos el nivel del Log, que pueden ser INFO, DEBUG, WARNING o ERROR y tambien indicamos los appenders que usará nuestro log.

Por último vamos al Global.asax, importamos el
using log4net;

Añadimos el siguiente código
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

Y en el Application_Start() añadimos lo siguiente:
protected void Application_Start()
{
    log4net.Config.XmlConfigurator.Configure();
}

Ya tenemos todo configurado para usar nuestro log, a partir de ahora, dependiendo del nivel en el que hallas seteado tu log, este escribirá en el archivo de texto, bd o como sea que lo hayas configurado.

Aqui les dejo un ejemplo simple para escribir en el log cuando ocurra alguna excepción:
public static void GenerandoError()
        {
            try
            {
                int numero = 53454534543543534324;
            }
            catch (Exception e)
            {
                Log.Error(e.Message, e);
            }
        }
Espero les sea útil, hasta la próxima :D!

No hay comentarios:

Publicar un comentario