Ausnahmeinformationen protokollieren

In den vorherigen Kapiteln haben wir benutzerdefinierte Inhalte protokolliert. Log4net kann darüber hinaus Ausnahmen inklusive vollständiger Stack‑Traces speichern, was Entwicklern bei der Fehlersuche hilft.

try
{
    int b = 0;
    int a = 100 / b;
}
catch (Exception ex)
{
    log.Error(ex.Message, ex);
}Code-Sprache: PHP (php)
  1. Ausnahme auslösen: 100 / b. Bei Variable b=0 wird eine DivideByZeroException (Division‑durch‑Null‑Ausnahme) geworfen.
  2. Ausnahme abfangen: catch (Exception ex) fängt alle von Exception abgeleiteten Ausnahmen ab.
  3. Wichtige Log‑Schreibweise: log.Error(ex.Message, ex);
    • Erster Parameter: Benutzerdefinierte Log‑Nachricht (hier die kurze Ausnahmebeschreibung ex.Message)
    • Zweiter Parameter muss das Ausnahme‑Objekt ex sein
    • Erkennt log4net, dass der zweite Parameter eine Exception‑Instanz ist, gibt esautomatisch den vollständigen Stack‑Trace aus inklusive Fehlerstelle und Aufrufkette.
Falsche Schreibweise (kein Stack‑Trace‑Ausgabe)
//  Nur String übergeben – Stack‑Trace geht verloren!
log.Error(ex.ToString());
log.Error(ex.Message);Code-Sprache: JavaScript (javascript)

Diese Variante gibt nur den Ausnahmetext aus. Manche Log‑Formate erweitern die Aufrufkette nicht automatisch und machen die Fehlersuche schwierig.

Empfohlene Standard‑Schreibweise
//  Empfohlen: Geschäftskontext hinzufügen, dann Ausnahmeobjekt übergeben
log.Error("Fehler bei der Divisionsberechnung aufgetreten", ex);Code-Sprache: JavaScript (javascript)

Ausnahmeinformationen protokollieren

Schreibe einen Kommentar

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