Verwendung des Logging innerhalb der DLE

Werden eigene Klassen zur Erweiterung der DLE verwendet, kann es nützlich sein auch in diesen eigene Logausgaben zu produzieren.
Einen Logger erhält man über die DLESession, deren Instanz üblicherweise direkt aus der Erweiterungsklasse erreichbar ist. Über die Methode getLogger(String name) erhält man eine Instanz eines Loggers mit der spezifizierten Kategorie. Die Kategorie sollte dabei üblicherweise der aktuelle voll qualifizierte Klassenname sein.

String name = this.getClass().getName();
DLELoggerIfc logger = dleSession.getLogger(name);
logger.debug(“Debugausgabe für “ + name);

Da die DEBUG und INFO Protokollstufen üblicherweise in produktiver Umgebung aus Performancegründen nicht eingeschaltet sind, sollten auch Anweisungen vermieden werden, die nur zur Ausgabe von solchen Nachrichten dienen. Im obigen Beispiel ist die Verknüpfung der beiden Zeichenketten in der debug() Methode nur notwendig, wenn auch die Protokollstufe entsprechend eine Ausgabe produziert.
Um solche unnötige Rechenzeit zu vermeiden, sollten für DEBUG und INFO Ausgaben zuerst die Protokollstufen abgefragt werden. Diese Abfrage verbraucht kaum Zeit (einige Nanosekunden):

String name = this.getClass().getName();
DLELoggerIfc logger = dleSession.getLogger(name);
if (logger.isDebugEnabled())
{
logger.debug(“Debugausgabe für “ + name);
}
if (logger.isInfoEnabled())
{
logger.info(“Infoausgabe für “ + name);
}