Logging bietet die Möglichkeit zur Analyse der internen Anwendungsvorgänge. Dies wird vorwiegend zur Problemsuche verwendet. Es benötigt ein aktiviertes Logging Framework.
Im Gegensatz dazu können auch die Einstellungen verbose und debug verwendet werden, um an gewissen Informationen über die laufende Anwendung zu gelangen, wobei diese jedoch auch ohne Logging Framework funktionieren. Die auf diese Weise gewonnenen Informationen sind jedoch viel spärlicher und im Falle der verbose Einstellung gedacht für die normale Verwendung, nicht bloss zur Problemsuche.
Logging auf der anderen Seite ermöglicht es, Diagnoseausgaben an vielen Stellen im laufenden Code zu verwenden und erlaubt eine feine Kontrolle darüber, welche dieser Meldungen ausgegeben werden sollen. Die genaue Weise, was konfiguriert werden kann und das Format der Konfigurationsdatei hängen dabei vom verwendeten Logging Framework ab. Für die Formatspezifikation dieser Konfigurationsdateien wird hier auf die Dokumentation des zugehörigen Logging Framework verwiesen.
Dies sind die möglichen Optionen der zu verwendenden Logging Frameworks:
Apache Log4j
Stellt die flexibelste Art dar, wie Logging in einem hierarchischen
Logger-Modell konfiguriert werden kann und unterstützt eine breite Auswahl
an Ausgabekanälen.
Benötigt die optionale Bibliothek ${app.home}/lib/log4j.jar
im Zugriff der Anwendung.
Standardmässig verwended, falls im classpath der Anwendung gefunden.
Single Log
Der Logging Mechanismus der standardmässig verwendet wird, falls Log4J nicht verfügbar ist. Gibt einfach alle Meldungen auf die Konsole aus.
Kann explizit eingeschaltet werden durch Angabe von
-Dnet.boarderzone.util.LoggerFactory=single
oder
-Dnet.boarderzone.util.LoggerFactory=net.boarderzone.util.LoggerFactorySingle
auf der Kommandozeile beim Starten der Anwendung (als ein JVM Parameter, nicht
einem Anwendungsparameter!).
JDK Logging
Stellt ähnliche Funktionalität zur Verfügung wie Log4j, jedoch sind nicht alle Möglichkeiten sauber unterstützt, da es nicht für die dynamische Neukonfiguration ausgelegt ist, wie es die Anwendung benötigt.
Muss explizit eingeschaltet werden durch Angabe von
-Dnet.boarderzone.util.LoggerFactory=jdk
oder
-Dnet.boarderzone.util.LoggerFactory=net.boarderzone.util.LoggerFactoryJdk
auf der Kommandozeile beim Starten der Anwendung (als ein JVM Parameter, nicht
einem Anwendungsparameter!).
Einfaches Konsolen-logging
Stellt nur einfache Ausgabe auf die die Anwendung startende Konsole bereit. Unterstützt eine hierarchische Logger-Konfiguration ähnlich zu Log4j, aber nicht die ausgefeilten Ausgabekanäle usw.
Muss explizit eingeschaltet werden durch Angabe von
-Dnet.boarderzone.util.LoggerFactory=console
oder
-Dnet.boarderzone.util.LoggerFactory=net.boarderzone.util.LoggerFactoryConsole
auf der Kommandozeile beim Starten der Anwendung (als ein JVM Parameter, nicht
einem Anwendungsparameter!).
überhaupt kein Logging
Schaltet alles Loggingverhalten der Anwendung ab.
Wird 'verwendet', wenn kein anderes Logging Framework verfügbar ist.
Die standardmässig aktive hart kodierte Logging Konfiguration unterdrückt alle Diagnostikausgaben und gibt bloss Warnungen und Fehlermeldungen auf die startende Konsole aus. Wenn die Anwendung also in einer Fensterumgebung ohne Konsole gestartet wird, so werden nie irgendwelche Ausgaben sichtbar.
Um dieses Verhalten zu ändern, kann mit der Einstellung logging
eine Logging-Konfigurationsdatei spezifiziert werden, welche standardmässig auf die
Datei logging.properties
im gerade aktvien Verzeichnis der
startenden Anwendung zeigt. Wird eine solche Datei gefunden, so wird sie geladen
und zur Konfiguration des aktiven Logging Frameworks verwendet. Von diesem Moment
an sollten dann Logging-Meldungen in den konfigurierten Ausgabekanälen (Konsole,
Log-Datei, usw.) erscheinen.