Das DLELoggerServiceIfc

Dieses Interface muß von jedem Service, der in der Konfiguration als LoggerService eingetragen ist, implementiert werden.
Es dient als eine Factory, die einzelne Logger Instanzen liefert. Dazu definiert sie eine Methode getLogger(String loggerName). Die implementierende Klasse muß eine Instanz eines DLELoggerIfc für den übergebenen Namen zurückgeben. Der Name wird von der DLE entsprechend der Hierarchie übergeben, üblicherweise ist dies der Klassenname der Klasse, aus der die Logausgabe aufgerufen wurde. Dies erlaubt es, die einzelnen Logausgaben hierarchisch zu ordnen. Als Hierarchien können dabei die Paketnamen der Klasse benutzt werden. Interne DLE Klassen fangen alle mit der Pakethierarchie at.visionflow.dle. an. Alle Logausgaben, die die Bricklogik betreffen, fangen mit der Hierarchie brick. an.

Protokollstufen (LogLevels)

Das DLELoggerServiceIfc definiert zudem einige Stringkonstanten, die zur Einstellung des Logdetails dienen. Je niedriger die gewählte Stufe, desto detaillierter ist die Logausgabe.
Bei der Initialisierung des Dienstes wird üblicherweise aus der Konfiguration ein Serviceparameter des Dienstes LoggerService mit dem Namen level gelesen und die Protokollstufe entsprechend dem Wert gesetzt. Dies ist in der Verantwortung der Dienstimplementation, die mitgelieferten Dienste tun dies, eigene Implementationen sollten dieser Vorgabe folgen.

KonstanteWertBedeutung
LEVEL_OFF_VALUEOFFKeine Logausgaben.
LEVEL_FATAL_VALUEFATALNur fatale Fehler, die einen weiteren Ablauf der DLE verhindern, werden protokolliert.
LEVEL_ERROR_VALUEERRORFehler, die aber nicht den weiteren Ablauf der DLE verhindern, werden protokolliert.
LEVEL_WARN_VALUEWARNWarnhinweise der DLE werden protokolliert.
LEVEL_INFO_VALUEINFOInformative Meldungen der DLE werden protokolliert.
LEVEL_DEBUG_VALUEDEBUGDetaillierte Informationen zum Ablauf der DLE werden protokolliert.
LEVEL_ALL_VALUEALLEin Synonym für DEBUG, alle Meldungen werden protokolliert.

Die gewählten Stufen sind dabei additiv. Das heißt, das zum Beispiel die gewählte Stufe WARN auch Meldungen der Stufen FATAL und ERROR protokolliert.
Gesetzt wird die Protokollstufe über die Methode setLogLevel(String newLevel). Dies betrifft die Protokollstufen für alle Logger Instanzen. Alternativ kann die Stufe auch mit der Methode setLogLevel(int newLevel) gesetzt werden. Die dafür notwendigen Konstanten befinden sich im DLELoggerIfc Interface.

Das DLELoggerIfc

Die Methode getLogger(String loggerName) des DLELoggerServiceIfc gibt eine Instanz eines DLELoggerIfc zurück. Dieser Logger ist für das eigentliche Logging verantwortlich.
Dazu definiert das Interface eine Reihe von Methoden, die zur Steuerung und Ausgabe dienen. Die Ausgabeinformation wird dabei als Object übergeben, die es dem Logger ermöglicht, spezifische Aktionen je nach Objekttyp zu wählen. Üblicherweise sind dies aber Strings, eine Ausgabe mittels object.toString() ist daher der gängige Weg zur Ausgabe.

MethodeBeschreibung
fatal(Object object)Ausgabe eines FATAL Logs.
fatal(Object object, Throwable ex)Ausgabe eines FATAL Logs mit Exception Informationen.
error(Object object)Ausgabe eines ERROR Logs.
error(Object object, Throwable ex)Ausgabe eines ERROR Logs mit Exception Informationen.
warn(Object object)Ausgabe eines WARN Logs.
warn(Object object, Throwable ex)Ausgabe eines WARN Logs mit Exception Informationen.
info(Object object)Ausgabe eines INFO Logs.
info(Object object, Throwable ex)Ausgabe eines INFO Logs mit Exception Informationen.
debug(Object object)Ausgabe eines DEBUG Logs.
debug(Object object, Throwable ex)Ausgabe eines DEBUG Logs mit Exception Informationen.
isInfoEnabled()Liefert true, wenn der LogLevel die Infoausgabe beinhaltet.
isDebugEnabled()Liefert true, wenn der LogLevel die Debugausgabe beinhaltet.
setLogLevel(int newLevel)Setzt den LogLevel für diesen Logger.

Für einen einzelnen Logger kann die Protokollstufe gesetzt werden, indem eine der im Interface definierten Konstanten verwendet wird.

KonstanteWertBedeutung
LEVEL_OFFInteger.MAX_VALUEKeine Logausgaben.
LEVEL_FATAL50000Nur fatale Fehler, die einen weiteren Ablauf der DLE verhindern, werden protokolliert.
LEVEL_ERROR40000Fehler, die aber nicht den weiteren Ablauf der DLE verhindern, werden protokolliert.
LEVEL_WARN30000Warnhinweise der DLE werden protokolliert.
LEVEL_INFO20000Informative Meldungen der DLE werden protokolliert.
LEVEL_DEBUG10000Detaillierte Informationen zum Ablauf der DLE werden protokolliert.
LEVEL_ALLInteger.MIN_VALUEEin Synonym für DEBUG, alle Meldungen werden protokolliert.