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.
Neueste Kommentare
Noch keine Kommentare zu Java-Logging-API im Vergleich mit log4j
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.