Iver's web place

Life is a journey ... taken one shot at a time!

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://www.iver.com.mx/index.php/trackback/92

# RE: Configurando log4net almacenando en archivos.

iver, <ivan.iver@gmail.com> / 18 July, 3:40pm  
avatar

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

Leave a Comment



Write the captcha code you are seeing.

Comment XML feeds: RSS | Atom