Einführung und Installation

Einführung

  1. Definition
    Log4net = Log for .NET, es ist die offizielle Portierung von Apache Log4j (klassische Java‑Protokollbibliothek) für die .NET‑Plattform, eine ausgereifte Open‑Source‑Bibliothek zur Protokollierung.
  2. Hauptfunktionen
    Nach der Integration im Projekt müssen Sie keine Datei‑Lese‑ und Schreiblogik selbst entwickeln. Sie erhalten schnell Anwendungsprotokolle für Laufzeitinformationen und Ausnahmestapeln, was das Debuggen und die Fehlersuche im Produktivbetrieb erleichtert.
  3. Zusammenhang der Begriffe
  • Log4j: Bewährte Protokoll‑Komponente für das Java‑Ökosystem
  • Log4net: Für C#/.NET angepasste Portierung von Log4j

Installation

Bei modernen .NET‑Projekten empfehlt sich die Installation über NuGet:

dotnet add package log4net

In Visual Studio können Sie im Dialogfeld „NuGet‑Pakete verwalten“ nach log4net suchen und es mit einem Klick installieren.

Früher wurde log4net hauptsächlich per manueller DLL‑Download eingebunden. Heutzutage ist NuGet die gängige Vorgehensweise.

Einrichtung der Log4Net‑Umgebung

log4net funktioniert in allen Projektarten: Konsolen‑, Desktop‑ und Webanwendungen.

Arbeitsablauf

Schritt 1: Web.config bearbeiten und log4net‑Konfiguration hinzufügen
<?xml version="1.0"?>
<configuration>
  <configSections>
    <!-- Registriere den log4net‑Konfigurationsabschnitt -->
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

  <log4net>
    <!-- Datei‑Appender mit datumsbasierter Protokollrotation -->
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <!-- Speicherpfad für Protokolle: Nutze relative Pfade, vermeide fest kodierte absolute Pfade von USB‑Laufwerken -->
      <param name="File" value="logs\\"/>
      <!-- Anfügemodus: true = Protokolle ergänzen, false = Datei bei jedem Start leeren -->
      <param name="AppendToFile" value="true"/>
      <!-- Maximale Anzahl aufzubewahrender Protokolldateien -->
      <param name="MaxSizeRollBackups" value="10"/>
      <!-- Fester Dateiname false = je Datum unterschiedliche Dateien erzeugen -->
      <param name="StaticLogFileName" value="false"/>
      <!-- Dateinamen‑Muster -->
      <param name="DatePattern" value="yyyy-MM-dd&quot;.log&quot;"/>
      <!-- Rotationsstrategie: Date = Protokolle nach Datum trennen -->
      <param name="RollingStyle" value="Date"/>

      <!-- Vorlage für das Protokoll‑Ausgabeformat -->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        <!-- ❗Alte Vorlage enthielt überflüssiges %loggername, das überflüssigen Text am Protokollende erzeugte, entfernt -->
      </layout>
    </appender>

    <!-- Stamm‑Protokollkonfiguration, gilt für die gesamte Anwendung -->
    <root>
      <!-- Protokollstufe all: alle Ebenen ausgeben; wählbar: DEBUG/INFO/WARN/ERROR/FATAL/OFF -->
      <level value="all"/>
      <!-- Verknüpfe den oben definierten Appender -->
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>
</configuration>Code-Sprache: HTML, XML (xml)
  1. Vermeide fest kodierte absolute Pfade wie G:\xxx. Diese funktionieren auf Servern nicht. Nutze stattdessen den relativen Pfad logs\\;
  2. In Produktivumgebungen empfehle sich die Stufe INFO oder ERROR, damit zahlreiche DEBUG‑Protokolle nicht Speicherplatz belegen.
Schritt 2: Globale Initialisierung von Log4Net

Füge den Initialisierungscode in der Methode Application_Start der Datei Global.asax ein, die Konfiguration wird beim Anwendungsstart geladen

protected void Application_Start(object sender, EventArgs e)
{
    // Log4net initialisieren, Einstellungen aus Web.config einlesen
    log4net.Config.XmlConfigurator.Configure();
}Code-Sprache: JavaScript (javascript)

Hinweis: Fehlt diese Zeile, werden trotz Protokollaufrufen keine Dateien erstellt. Das ist ein häufiger Fehler.

Schritt 3: Logger abrufen und Protokolle auf Seiten ausgeben

Schreibe den Aufrufcode in Default.aspx.cs. Der Code kann überall platziert werden, dieses Beispiel zeigt eine einzelne Seite.

using log4net;

public partial class _Default : System.Web.UI.Page
{
    // Logger‑Instanz abrufen, Zeichenkette ist frei wählbarer Logger‑Name
    public static readonly ILog log = LogManager.GetLogger("logger-name");

    protected void Page_Load(object sender, EventArgs e)
    {
        log.Info("Normalprotokoll");
        log.Error("Fehlerprotokoll");
        // Zusätzliche verfügbare Ebenen
        // log.Debug("Debug‑Protokoll");
        // log.Warn("Warnprotokoll");
        // log.Fatal("Schwerwiegender‑Fehler‑Protokoll");
    }
}

Empfehlung: Definiere ILog als static readonly, um wiederholtes Erzeugen von Instanzen zu vermeiden und die Leistung zu verbessern.

Ausführungsergebnis

  1. Nach dem Start der Anwendung wird automatisch der Ordner logs im Wurzelverzeichnis der Webseite erstellt;
  2. Es werden Protokolldateien im Format 2026-08-04.log angelegt;
  3. Beispielinhalt einer Datei:
2026-08-04 15:30:22,123 [6] INFO  logger-name - Normalprotokoll
2026-08-04 15:30:22,129 [6] ERROR logger-name - FehlerprotokollCode-Sprache: CSS (css)

Ergänzungen

  • Neben Datei‑Ausgabe unterstützt Log4Net zudem Konsolen‑, Datenbank‑ und E‑Mail‑Ausgabe;
  • Für neue Projekte vergleiche NLog / Serilog: diese bieten bessere Unterstützung für .NET Core/.NET 5+. Log4net wird hauptsächlich zur Wartung älterer WebForm‑ und WinForms‑Projekte verwendet.

Einführung und Installation

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert