[Ejemplo] Usando la API Apache Log4Net

Estaba dando mantenimiento a un proyecto que fue desarrollado con Java (Struts), y en el  código vi el uso de la API Apache Logging Services, puntualmente log4j, para registrar información de rastreo en un archivo.

Pero también hay una versión .Net de esta API: Log4net. Existen muchos otras APIs similares, hay para todos los gustos y colores. En esta entada mostraremos como usar la mencionada API:

Después de descargar Log4Net, y extraer el contenido hacemos lo siguiente:

1. Agregamos la referencia a nuestro proyecto (VS2005, VS2008, VS2010):

 

2. Configuramos que tipo de proveedor vamos a usar para guardar la información, puede ser un archivo de texto, SQL Server, Oracle, enviar emails, entre otros. Son dos partes principales: la declaración de la sección, y la definición de la sección misma. Si queremos agregar proveedores usamos el elemento appender:

   1: <?xml version="1.0"?>

   2: <configuration>

   3:   <configSections>

   4:     <section name="log4net" 

   5:              type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />    

   6:   </configSections>

   7:   <log4net>  

   8:     <root>

   9:       <level value="ALL"/>

  10:       <appender-ref ref="AdoNetAppender" />

  11:     </root>

  12:     <appender name="FileAppender" 

  13:          type="log4net.appender.FileAppender">...</appender>

  14:     <appender name="AdoNetAppender" 

  15:         type="log4net.Appender.AdoNetAppender">...</appender>    

  16:   </log4net>  

  17: </configuration>

3. Escribimos el código para guardar los mensajes:

   1: class Program

   2:   {

   3:  

   4:     static void ConfigureLog()

   5:     {

   6:       //Configurar Log, de acuerdo a la archivo app.config

   7:       log4net.Config.XmlConfigurator.Configure();          

   8:     }

   9:  

  10:     static void Main(string[] args)

  11:     {

  12:       //SET UP, Configure Log

  13:       ConfigureLog();

  14:  

  15:       log4net.ILog logger = log4net.LogManager.GetLogger(typeof(Program));

  16:  

  17:       logger.Debug("Here is a debug log.");

  18:       logger.Info("... and an Info log.");

  19:       logger.Warn("... and a warning.");

  20:       logger.Error("... and an error.");

  21:       logger.Fatal("... and a fatal error.");

  22:  

  23:       Console.WriteLine("END --- PRESS ENTER");

  24:       Console.ReadLine();

  25:     }    

  26:   }

4. Log en archivo de texto: , Log en Base de datos:

 

Nota: Para el tipo FileAppender, podemos establecer el patrón de como se guardará la información:

   1: <appender name="FileAppender" type="log4net.appender.FileAppender">

   2:    <param name="File" value="C:tempmiPrimerLog4Net.txt" />

   3:    <param name="AppendToFile" value="true" />

   4:    <layout type="log4net.Layout.PatternLayout">

   5:      <param name="ConversionPattern" value="%d [%t] %-2p %c [%x] - %m%n" />

   6:    </layout>

   7: </appender>

¿Ustedes qué usan para el Logging, alguna API pública o tienen sus propias clases?

Enlaces relacionados:

Saludos,

Un comentario en “[Ejemplo] Usando la API Apache Log4Net”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *