Logger log4net en C# (para una aplicacion de escritorio)

Ejemplo de un Rolling log file appender: en este ejemplo, se guarda el log en un archivo de texto, con tamaño máximo de 10Mb (atributo: maximumFileSize).

Cuando se llega al tamaño máximo se sobreescribe el archivo, dejando hasta 5 archivos de backup (atributo: maxSizeRollBackups)

1. Descargar las dll's de log4j desde esta ubicación:

http://apache.mirrors.pair.com//logging/log4net/binaries/log4net-1.2.13-bin-newkey.zip
(http://logging.apache.org/log4net/download_log4net.cgi)

2. Agregar una referencia al archivo log4net.dll

3. En App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
  </configSections>

  <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="c:\log\MySampleLogFile.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="10MB" />
      <staticLogFileName value="true" />
      <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="Amazon" />
        <acceptOnMatch value="false" />
      </filter>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
  </log4net>

</configuration>


4. Ejemplo de uso:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using log4net;
using log4net.Config;

namespace log1
{
    class Program
    {
        private static readonly ILog logger = LogManager.GetLogger(typeof(Program));


        static void Main(string[] args)
        {
            log4net.Config.XmlConfigurator.Configure();        

            for (int i = 0; i < 100; i++)
            {
                logger.Debug("Log de debug");
                logger.Info("Log informativo");
                logger.Warn("Log de warning");
                logger.Error("Log de error");
                logger.Fatal("Log de error fatal");
            }
        }
    }
}


No hay comentarios:

Publicar un comentario