Java-Logging-API im Vergleich mit log4j

Das wichtigste Objekt, das der Code zur Kontaktaufnahme mit dem Logging-API verwendet, ist die Logger-Class. Die Logger-Class beinhaltet die Methoden, die für das Abrufen einer Logger-Instanz und für das Loggen verschiedener Stufen von Meldungen nötig sind. Für das Abrufen einer Instanz der Logger-Class kann ein Code wie der folgende verwendet werden:


private static final Logger logger = Logger.getLogger
(JavaLoggingExample.class.getName());

Dieser Code ruft eine Instanz der Logger-Class ab und verwendet dazu den aktuellen Class-Namen. In diesem Fall lautet der Name der Class JavaLoggingExample. Die Methode getLogger() akzeptiert ein String-Argument, das den Namen der Logger-Class spezifiziert. Das Logging-API verwendet einen hierarchischen Name-Space, die Einstellungen können daher an die in der Hierarchie niedriger stehenden Stufen „vererbt“ werden (mehr über die Einstellungen im Verlauf dieses Artikels). Wäre der volle Name der Class beispielsweise com.versatilesolutions.builder.JavaLoggingExample, könnten die Einstellungen des Loggers von com.versatilesolutions übernommen („geerbt“) werden, da dies als die Mutter der Klasse gilt. Alle Logger übernehmen ihre Einstellungen vom LogManager, neu erstellte Logger werden also über die im LogManager deklarierten Einstellungen verfügen.

Das Loggen

Logs basieren auf Levels, die durch Integer dargestellt werden. Die Level-Class im Paket java.util.logging enthält Felder für die voreingestellten Levels. Diese Levels sind SEVERE, WARNING, INFO, CONFIG, FINE, FINER und FINEST. Um eine Nachricht eines bestimmten Levels zu loggen, ruft man die Logging-Methode mit dem gewünschten Level und der gewünschten Meldung auf:


logger.log(Level.SEVERE, "This is a severe level message!");

Damit wird eine Meldung des Levels SEVERE geloggt. Es gibt verschiedene auf Zeitersparnis ausgerichtete Logging-Methoden, die das direkte Loggen bestimmter Level ermöglichen:


logger.severe("This is another severe level message!");

Werden diese Logging-Methoden ausgeführt, sieht die Ausgabe in der Konsole in etwa wie folgt aus:


Jun 25, 2002 4:40:34 PM JavaLoggingExample <init>
SEVERE: This is a severe level message!

Die erste Zeile listet Informationen zu Datum und Zeit auf, gefolgt vom Namen der Klasse und der wahrscheinlichsten Vermutung des Logging-API darüber, welche Routine den Aufruf ausgeführt haben könnte. In diesem Fall weist <init> auf den Konstruktor (constructor) der Klasse hin. Das Logging-API garantiert nicht die Genauigkeit der Trace-Informationen, denn akkurate Stack-Traces können von vielen optimierten Laufzeitumgebungen beeinträchtigt werden.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Intel verschiebt Bau der Chipfabrik in Magdeburg

Das Projekt liegt wahrscheinlich für rund zwei Jahre auf Eis. Aus der Fertigungssparte Intel Foundry…

2 Tagen ago

Google kündigt neue Sicherheitsfunktionen für Chrome an

Der Sicherheitscheck entzieht unsicheren Websites automatisch alle Berechtigungen. Zudem können Nutzer in Chrome künftig Websites…

3 Tagen ago

Cyberkriminelle nehmen Fertigungsbetriebe ins Visier

Ontinue registriert einen Anstieg beim Anteil am Gesamtangriffsvolumen um 105 Prozent. Das Angriffsvolumen auf den…

3 Tagen ago

o1: OpenAI stellt neues KI-Modell für komplexe Abfragen vor

Das o1 genannte Modell liegt als Preview vor. Bei einer Mathematikprüfung beantwortet es 83 Prozent…

5 Tagen ago

Zoom erhält IT-Sicherheits- kennzeichen des BSI

Das Kennzeichen erhalten Zoom Workplace Pro und Zoom Workplace Basic. Es bescheinigt unter anderem aktuelle…

6 Tagen ago

Google verbessert Tab-Verwaltung in Chrome

iOS und iPadOS erhalten Tab-Gruppen. Zudem unterstützt Chrome nun die Synchronisierung von Tab-Gruppen.

7 Tagen ago