Realisiert die Protokollausgabe einer Konsolenanwendung und unterstützt individuell festlegbare Text‑ und Hintergrundfarben je Protokollstufe. Das macht die Debug‑Phase sehr übersichtlich.
- Neue Konsolenanwendung in Visual Studio erstellen
- Konfigurationsdatei
App.configzum Projekt hinzufügen - log4net einbinden (Installation über NuGet / Verweis auf log4net.dll)
- log4net‑Einstellungen in der Datei
App.configverfassen - log4net im Quellcode initialisieren und Protokolle ausgeben
Für Konsolenprotokolle lassen sich Vorder‑ und Hintergrundfarben pro Protokollstufe einstellen, um unterschiedliche Protokolltypen voneinander abzugrenzen.
App.config‑Konfiguration
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<!-- Farb‑Konsolen‑Ausgabe‑Appender ColoredConsoleAppender -->
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender">
<!-- Farbschema für die ERROR‑Stufe -->
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red, HighIntensity" />
</mapping>
<!-- Farbschema für die DEBUG‑Stufe -->
<mapping>
<level value="DEBUG" />
<backColor value="Green" />
</mapping>
<!-- Farbschema für die INFO‑Stufe -->
<mapping>
<level value="Info" />
<backColor value="Yellow" />
</mapping>
<!-- Mapping‑Farben für WARN und FATal können Sie nach Bedarf ergänzen -->
<!-- Vorlage für das Protokoll‑Ausgabeformat -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
<!-- Root‑Logger, Konsolenausgabe aktivieren -->
<root>
<level value="All" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
</log4net>
</configuration>Code-Sprache: HTML, XML (xml)
Beschreibung der Format‑Platzhalter
%date: Zeitpunkt des Protokolleintrags[%thread]: Thread‑Kennnummer%-5level: Protokollstufe (Ausrichtung auf 5 Zeichenbreite)%logger: Klassenname des Protokoll‑Ursprungs%message: Eigentlicher Protokollinhalt%newline: Automatischer Zeilenumbruch
Program.cs
using System;
using log4net;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// log4net‑Konfiguration laden und initialisieren
log4net.Config.XmlConfigurator.Configure();
// Logger‑Instanz abrufen, aktuellen Klassentyp übergeben um Protokollherkunft nachzuvollziehen
ILog logger = LogManager.GetLogger(typeof(Program));
// Protokolle aller Stufen ausgeben
logger.Info("Normale Protokollmeldung");
logger.Error("Fehlerprotokoll");
logger.Debug("Debug‑Information");
logger.Fatal("Schwerwiegender Fehler");
logger.Warn("Warnmeldung");
Console.ReadKey();
}
}
}Code-Sprache: JavaScript (javascript)
Ausgabeverhalten bei Ausführung
Die Konsole rendert automatisch unterschiedliche Hintergrundfarben je Protokollstufe:
- INFO: Gelber Hintergrund
- DEBUG: Grüner Hintergrund
- ERROR / FATAL: Leuchtend roter Hintergrund
- WARN: Gelber Hintergrund
Ausgabebeispiel:
2017-03-21 20:35:31,550 [9] INFO ConsoleApplication1.Program [(null)] - Normale Protokollmeldung
2017-03-21 20:35:31,592 [9] ERROR ConsoleApplication1.Program [(null)] - Fehlerprotokoll
2017-03-21 20:35:31,592 [9] DEBUG ConsoleApplication1.Program [(null)] - Debug‑Information
2017-03-21 20:35:31,593 [9] FATAL ConsoleApplication1.Program [(null)] - Schwerwiegender Fehler
2017-03-21 20:35:31,594 [9] WARN ConsoleApplication1.Program [(null)] - WarnmeldungCode-Sprache: CSS (css)

Konsolen‑Protokollausgabe