Instalar log4net en ASP.NET


Haremos una pequeña parada en el camino antes de proceder a explicar el funcionamiento de los Action Filters para aprender a configurar la herramienta de logging de Apache log4net. Esto se debe a que en el siguiente artículo crearemos un filtro personalizado que se encargará de trazar todas las operaciones realizadas por nuestros controladores, por lo que será requisito previo disponer de esta biblioteca instalada en nuestro proyecto.

Comenzaremos descargándonos log4net de la web de apache. Podemos obtenerlo desde aquí.

Hecho esto, abriremos el fichero .zip y nos dirigiremos al directorio que se corresponda con nuestra versión, en este caso, 4.0.


Localizaremos a continuación la biblioteca log4net.dll


A continuación, añadiremos la referencia desde nuestro proyecto. Para ello haremos click derecho sobre Refences y seleccionaremos la opción Add Reference…


Mediante la opción Browse buscaremos la dll en la ruta en la que lo hayamos descomprimido y la seleccionaremos, haciendo así que se añada a nuestro proyecto.


A continuación abriremos nuestro app.config / web.config y añadiremos los siguientes fragmentos de código XML dentro de las secciones indicadas:

Configuration > ConfigSections:

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

Configuration

  <log4net>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <param name="File" value="log.txt" />
      <param name="AppendToFile" value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="20MB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
  </log4net>

Como podemos imaginar leyendo la configuración anterior, se creará un fichero llamado log.txt de un tamaño máximo de 20MB que agregará los nuevos elementos al fichero. La configuración de log4net, sin embargo, no es el objetivo de este artículo, sino dotarle de una configuración sencilla para simplificar el siguiente artículo.

Lo siguiente será inicializar log4net. Esta operación deberá realizarse una única vez, por lo que lo añadiremos en el método Application_Start() del global.asax.cs.

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            // [...]

            // Iniciamos log4net
            log4net.Config.XmlConfigurator.Configure();
        }

Para hacer uso de log4net, sólo nos queda declarar una referencia a la interfaz ILog e instanciarla invocando al método GetLogger(), de la siguiente forma:

    private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

Añadir una línea al log será tan sencillo como hacer lo siguiente:

            string respuesta = string.Format("La hora se ha cacheado en el instante {0}", DateTime.Now);
            log.Debug(respuesta);

Más adelante veremos haremos uso de log4net para crear nuestro filtro global de logging.

Anuncios

One comment

  1. hola daniel… implemente el logfor net pero no me escribe en el archivo .log o .txt (en mi caso) sabes por que puede estar sucediendo esto?

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s