Cómo trabajar con log4net en C #

Cuando trabaje en aplicaciones, es posible que desee registrar datos de la aplicación que pueden incluir la secuencia de eventos en su aplicación, acciones del usuario o incluso errores cuando ocurren. Hay muchos marcos de registro que puede usar, pero log4net es, con mucho, uno de los marcos de registro más populares para usar con aplicaciones creadas o desarrolladas en .NET. Es una biblioteca de código abierto (un puerto de la popular biblioteca de código abierto log4j para Java) que se puede usar para registrar datos de aplicaciones en diferentes destinos de registro en .NET.

Instalación de log4net 

La forma más fácil y rápida de comenzar a usar log4net es instalándolo a través del Administrador de paquetes NuGet. Suponiendo que ha creado un proyecto de aplicación de consola en Visual Studio, puede instalar log4net a través de NuGet Manager, siguiendo estos pasos.

  1. En la "Ventana del Explorador de soluciones", seleccione y haga clic derecho en su proyecto
  2. Haga clic en "Administrar paquetes NuGet ..."
  3. Haga clic en "En línea" y luego escriba log4net en el cuadro de búsqueda
  4. Seleccione el paquete log4net que le gustaría instalar
  5. Haga clic en "Instalar" para iniciar el proceso de instalación.

En el momento de escribir estas líneas, la última versión estable de log4net es 2.0.5. Una vez que se haya instalado log4net a través del Administrador de paquetes NuGet, observará el ensamblado log4net agregado como referencia a su proyecto.

Configuración de log4net

Ahora que el paquete log4net se ha instalado correctamente, agregue la siguiente línea al archivo AssemblyInfo.cs en la carpeta Propiedades de su proyecto. Si no se especifica, no se considerarán los ajustes de configuración.

[ensamblado: log4net.Config.XmlConfigurator (ConfigFile = "Log4Net.config", Watch = true)]

Alternativamente, también puede mencionar lo mismo en el archivo app.config o web.config.

[ensamblado: log4net.Config.XmlConfigurator (Watch = true)]

Si los metadatos de configuración de log4net residen en algún otro archivo (es decir, que no sea web.config o app.config), puede especificar lo siguiente.

[ensamblado: log4net.Config.XmlConfigurator (ConfigFile = "log4net.config", Watch = true)]

El siguiente paso es especificar los detalles de configuración necesarios para log4net en el archivo app.config o web.config en su aplicación. Suponiendo que está utilizando un proyecto de aplicación de consola, agregue una sección de configuración llamada "log4net" en el archivo app.config como se muestra a continuación.

Ahora, agregue la sección "" después del elemento en su archivo app.config. A continuación, dentro de la sección "", coloque los detalles de configuración como se muestra en el fragmento de código que se proporciona a continuación.

Eso es todo lo que necesita hacer para configurar log4net. Exploremos ahora cómo podemos usarlo en nuestro código. El elemento se utiliza para especificar el nombre y el tipo de registrador que se utilizará. En este ejemplo, estamos usando el appender de archivo rodante. Sin embargo, hay muchos otros tipos de añadidos disponibles, es decir, AdoNetAppender, AspNetTraceAppender, ConsoleAppender, etc. Aquí está la lista completa y cómo configurar otros añadidores.

Usando log4net 

En su clase, cree una referencia a ILog haciendo una llamada al método estático GetLogger de la clase LogManager como se muestra en el fragmento de código que se muestra a continuación.

privado estático de solo lectura log4net.ILog log = 

log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

Ahora puede utilizar la instancia denominada log para registrar datos en los destinos configurados. El siguiente fragmento de código ilustra cómo puede aprovechar la instancia de registro para registrar datos.

log.Debug ("Este es un mensaje de depuración");

log.Info ("Este es un mensaje de información");

log.Warn ("Este es un mensaje de advertencia");

log.Error ("Este es un mensaje de error");

log.Fatal ("Este es un mensaje fatal");

Aquí hay una lista completa de códigos que muestra cómo puede registrar su mensaje de excepción en un archivo de texto usando log4net.

programa de clase

   {

       static readonly log4net.ILog log =

       log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

       static void Main (cadena [] argumentos)

       {

           tratar

           {

               lanzar una nueva excepción ("Este es un mensaje de prueba ...");

           }

           catch (Excepción ex)

           {

               log.Error (por ejemplo, mensaje);

           }          

           Console.Read ();

       }

   }

Después de ejecutar el programa anterior, se creará un archivo de texto llamado .log y se registrará el mensaje de excepción especificado junto con la marca de tiempo. Tenga en cuenta que también puede usar log4net programáticamente, es decir, configurar log4net programáticamente sin la necesidad de la configuración que discutimos anteriormente.