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)
- Ausnahme auslösen:
100 / b. Bei Variableb=0wird eineDivideByZeroException(Division‑durch‑Null‑Ausnahme) geworfen. - Ausnahme abfangen:
catch (Exception ex)fängt alle vonExceptionabgeleiteten Ausnahmen ab. - 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
exsein - Erkennt log4net, dass der zweite Parameter eine
Exception‑Instanz ist, gibt esautomatisch den vollständigen Stack‑Trace aus inklusive Fehlerstelle und Aufrufkette.
- Erster Parameter: Benutzerdefinierte Log‑Nachricht (hier die kurze Ausnahmebeschreibung
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
Previous: Separate Konfigurationsdatei