Iver's web place

Navegador de Archivos

Calendario del Blog

February 2012
Sun Mon Tue Wed Thu Fri Sat
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3

General

Configurando log4net almacenando en archivos.

Si alguna vez has realizado algun desarrollo y has tenido problemas al ponerlo en produccion sabras que no puedes debuguear en tu servidor de produccion o al menos es algo complicado realizarlo.

Para este tipo de problemas y sobre todo para una buena administracion de tu sistema es necesario que siempre tengas un log de las cosas que pasan. Recientemente implemente log4net con .NET en el trabajo y a continuacion pretendo poner unas pocas configuraciones que me han sido de ayuda.


  1. Descargar log4net de la siguiente liga: http://logging.apache.org/log4net/downloads.html

  1. Agregar el binario a las referencias, para esto buscamos la dll apropiada que se encuentra en el directorio bin del comprimido obtenido en el paso anterior. De acuerdo con el framework que se trabaje se navega en los directorios y encontraremos una dll y un archivo xml, dichos archivos los copiamos y pegamos en el directorio bin de nuestro proyecto. Si usas un IDE como MonoDevelop o VS solo basta darle boton derecho en el navegador de nuestra solucion y seleccionar agregar referencias.


  1. Para configurarlo se requiere agregar algo como lo siguiente en el archivo web.config si estas desarrollando un sitio web o en app.config si es una aplicacion:

 
 
<configuration>
  <configsections>
    <section type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"></section>
  </configsections>
 
 
  <log4net>
   
    <appender type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <param value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n"></param>
      </layout>
    </appender>
   
    <appender type="log4net.Appender.RollingFileAppender">
      <param value="C:\\log\\MiLog.log"></param>
      <param value="true"></param>
      <param value="10"></param>
      <param value="1000"></param>
      <param value="Size"></param>
      <param value="true"></param>
      <layout type="log4net.Layout.PatternLayout">
        <param value="%d [%t] %-5p %-45c [%x] - %m%n"></param>
      </layout>
    </appender>
   
    <appender type="log4net.Appender.FileAppender">
      <param value="MiArchivoDeLogs.log"></param>      
     
      <param value="true"></param>
      <layout type="log4net.Layout.PatternLayout">
        <param value="%d [%t] %-5p %c [%x] - %m%n"></param>
      </layout>
    </appender>
   
    <root>
      <level value="INFO"></level>
     
    </root>
   
    <logger>
      <level value="INFO"></level>
     
    </logger>
  </log4net>
</configuration>
 

  1. Por ultimo se deben de agregar los namespaces en tu codigo

 
using log4net;
usgin log4net.Config;
 
o bien hacer referencia directa a cada metodo con su ruta absoluta. Para poder usar los metodos es necesario que se declare un objeto estatico y de solo lectura para almacenar la referencia al logger:

 
private static readonly ILog log = LogManager.GetLogger("NombreDelAppender");
 
Donde NombreDelAppender es el nombre que le has puesto al appender primario, en este caso ha sido "ConsoleAppender". O bien si agregaron el nodo logger como en el ejemplo, pueden usar:

 
private static readonly ILog log = LogManager.GetLogger("MiLogName");
 
Algo importante y que me causo un poco de dolor de cabeza es que no se menciona en la mayoria de los manuales que se tiene que mandar a llamar el metodo que configura el framework, esto se hace de la siguiente manera y se pone en el constructor de la clase.

 
XmlConfigurator.Configure();
 
Y despues podras usar los metodos del log (Debug, Info, Warning, Error, etc):

 
log.Debug("Iniciando aplicacion");
 
Para mas detalles de la configuracion pueden leer la documentacion.

http://logging.apache.org/log4net/release/manual/configuration.html

O bien usar este enlace que creo es mas explicito y contiene un ejemplo completo:

http://aspalliance.com/557

Mas adelante posteare una configuracion que hice para sql con SQL Server para aquellos que tengan dudas o interes al respecto. Por el momento es todo porque tengo algo de suenio.
Trackback URI: http://es.iver.com.mx/index.php/trackback/92

#1 RE: Configurando log4net almacenando en archivos.

Akin0, <E-Mail> / July 18, 12:41 pm  
avatar

Wuau !

Muy bueno el miniarticulo !

Gracias !

[ Responder (0) ]

#2 RE: Configurando log4net almacenando en archivos.

iver, <E-Mail> / July 18, 3:40 pm  
avatar

Muchas gracias bro, espero completar el post con un manualillo.
Saludos.

[ Responder (0) ]

Dejar un comentario

Escribe el código Captcha que estás viendo

Fuentes XML de comentario: RSS | Atom

Estadísticas de visitantes

5
40
27433