Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung |
de:modul:ffit:3-jahr:java:learningunits:lu03:b [2025/09/01 16:12] – apeter | de:modul:ffit:3-jahr:java:learningunits:lu03:b [2025/09/01 21:07] (aktuell) – apeter |
---|
Anschliessend können sämtliche Klassen, in denen Logging eingesetzt werden soll mit einer ''Logger''-Objekt ausgestattet werden. Heutzutage wird oft ''log'' als Name gewählt, obwohl dieser von der Namenskonvention für Konstanten abweicht. Hauptsache die Benennung ist innerhalb des Projekts einheitlich. | Anschliessend können sämtliche Klassen, in denen Logging eingesetzt werden soll mit einer ''Logger''-Objekt ausgestattet werden. Heutzutage wird oft ''log'' als Name gewählt, obwohl dieser von der Namenskonvention für Konstanten abweicht. Hauptsache die Benennung ist innerhalb des Projekts einheitlich. |
| |
^Vorher ^Nachher | | ^ Vorher ^ Nachher ^ |
| <WRAP> | | <WRAP> |
<code java> | <code java> |
| |
^ Level ^ Beschreibung ^ Beispiel ^ | ^ Level ^ Beschreibung ^ Beispiel ^ |
| ''<color #800080>DEBUG</color>'' | Für Entwickler interessant, nicht für den Betrieb (interne Details, Diagnose, Ablaufverfolgung). | SQL-Statement, Aufruf-Parameter, Zwischenergebnisse | | | ''<color #b200ed>DEBUG</color>'' | Für Entwickler interessant, nicht für den Betrieb (interne Details, Diagnose, Ablaufverfolgung). | SQL-Statement, Aufruf-Parameter, Zwischenergebnisse | |
| ''<color #00a2e8>INFO</color>'' | Normale, erwartete Ereignisse, die den regulären Ablauf dokumentieren. | Anwendung gestartet, Benutzer hat sich angemeldet, erfolgreicher DB-Aufruf | | | ''<color #00a2e8>INFO</color>'' | Normale, erwartete Ereignisse, die den regulären Ablauf dokumentieren. | Anwendung gestartet, Benutzer hat sich angemeldet, erfolgreicher DB-Aufruf | |
| ''<color #ff7f27>WARN</color>'' | Unerwartete, aber tolerierbare Situation; Anwendung läuft weiter, sollte jedoch geprüft werden. | Ungültige Benutzereingabe, deprecated API verwendet, langsame Antwortzeit | | | ''<color #ff7f27>WARN</color>'' | Unerwartete, aber tolerierbare Situation; Anwendung läuft weiter, sollte jedoch geprüft werden. | Ungültige Daten, deprecated API, aussergewöhnlich langsame Antwortzeit | |
| ''<color #ed1c24>ERROR</color>'' | Schwerwiegender Fehler, der Funktionalität einschränkt oder nicht kompensiert werden kann. | Datenbank nicht erreichbar, IOException beim Schreiben einer Datei, Transaktion fehlgeschlagen | | | ''<color #ed1c24>ERROR</color>'' | Schwerwiegender Fehler, der Funktionalität einschränkt oder nicht kompensiert werden kann. | Datenbank nicht erreichbar, IOException beim Schreiben einer (wichtigen) Datei, Transaktion fehlgeschlagen | |
| |
Die Wahl des richtigen Loglevels ist essentiell, um bei grösseren Applikationen den Überblick zu behalten. | Die Wahl des richtigen Loglevels ist essentiell, um bei grösseren Applikationen den Überblick zu behalten. |
| |
Grundsätzlich gilt: Eine Exception ist mindestens Stufe WARN, denn Exceptions sollten im Normalfall nicht auftauchen. Bei ''.error(...)'' und '.warn(...)' kann daher auch ein Stacktrace (''Throwable'') mitgegeben werden. | Grundsätzlich gilt: Eine Exception ist mindestens Stufe WARN, denn Exceptions sollten im Normalfall nicht auftauchen. Bei ''.error(...)'' und ''.warn(...)'' kann daher auch ein Stacktrace (''Throwable'') mitgegeben werden. |
Wenn man eine Exception "wrapped" und weiterwirft (z.B. ''NumberFormatException'' in eine ''IllegalArgumentException''), dann kann das Ereignis zwar geloggt werden, aber der StackTrace sollte nur einmal (beim endgültigen Fangen) ausgegeben werden. | Wenn man eine Exception "wrapped" und weiterwirft (z.B. ''NumberFormatException'' in eine ''IllegalArgumentException''), dann kann das Ereignis zwar geloggt werden, aber der StackTrace sollte nur einmal (beim endgültigen Fangen) ausgegeben werden. |
| |