Salida de registros en consola

Implementa la salida de registros para aplicaciones de consola, con soporte para colores personalizados de texto y fondo según el nivel de registro. Resulta muy práctico durante la depuración.

  1. Crear una nueva aplicación de consola en Visual Studio
  2. Agregar el archivo de configuración App.config al proyecto
  3. Incorporar log4net (instalación por NuGet / referencia a log4net.dll)
  4. Escribir la configuración de log4net dentro de App.config
  5. Inicializar log4net en el código y generar registros

En los registros de consola puedes configurar colores de primer plano y de fondo para cada nivel, para distinguir fácilmente los tipos de mensajes.

Configuración App.config

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

  <log4net>
    <!-- Aplicador de salida a consola en color ColoredConsoleAppender -->
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
      <!-- Paleta de colores para nivel ERROR -->
      <mapping>
        <level value="ERROR" />
        <foreColor value="White" />
        <backColor value="Red, HighIntensity" />
      </mapping>
      <!-- Paleta de colores para nivel DEBUG -->
      <mapping>
        <level value="DEBUG" />
        <backColor value="Green" />
      </mapping>
      <!-- Paleta de colores para nivel INFO -->
      <mapping>
        <level value="Info" />
        <backColor value="Yellow" />
      </mapping>
      <!-- Puedes añadir tus propias asignaciones de color para WARN y FATAL -->

      <!-- Plantilla de formato de salida de registros -->
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>

    <!-- Registrador raíz, habilita la salida por consola -->
    <root>
      <level value="All" />
      <appender-ref ref="ColoredConsoleAppender" />
    </root>
  </log4net>
</configuration>Lenguaje del código: HTML, XML (xml)
Descripción de los marcadores de formato
  • %date: Fecha y hora del registro
  • [%thread]: Identificador del hilo
  • %-5level: Nivel del registro (alineado en 5 caracteres de ancho)
  • %logger: Nombre de la clase que genera el registro
  • %message: Contenido principal del registro
  • %newline: Salto de línea automático

Program.cs

using System;
using log4net;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // Cargar e inicializar la configuración de log4net
            log4net.Config.XmlConfigurator.Configure();
            // Obtener instancia del registrador, pasamos el tipo de clase actual para localizar el origen del registro
            ILog logger = LogManager.GetLogger(typeof(Program));

            // Generar registros de todos los niveles
            logger.Info("Registro normal");
            logger.Error("Registro de error");
            logger.Debug("Mensaje de depuración");
            logger.Fatal("Error grave");
            logger.Warn("Mensaje de advertencia");

            Console.ReadKey();
        }
    }
}Lenguaje del código: JavaScript (javascript)

Resultado de ejecución

La consola aplica automáticamente un color de fondo distinto según el nivel del registro:

  • INFO: Fondo amarillo
  • DEBUG: Fondo verde
  • ERROR / FATAL: Fondo rojo brillante
  • WARN: Fondo amarillo

Ejemplo de salida:

2017-03-21 20:35:31,550 [9] INFO  ConsoleApplication1.Program [(null)] - Registro normal
2017-03-21 20:35:31,592 [9] ERROR ConsoleApplication1.Program [(null)] - Registro de error
2017-03-21 20:35:31,592 [9] DEBUG ConsoleApplication1.Program [(null)] - Mensaje de depuración
2017-03-21 20:35:31,593 [9] FATAL ConsoleApplication1.Program [(null)] - Error grave
2017-03-21 20:35:31,594 [9] WARN  ConsoleApplication1.Program [(null)] - Mensaje de advertenciaLenguaje del código: CSS (css)

Salida de registros en consola

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *