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.
- Crear una nueva aplicación de consola en Visual Studio
- Agregar el archivo de configuración
App.configal proyecto - Incorporar log4net (instalación por NuGet / referencia a log4net.dll)
- Escribir la configuración de log4net dentro de
App.config - 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