log4j ist ein Open-Source Logging-Framework für die Java-Umgebung. Über Logger werden Laufzeitinformationen in das Loggingsystem geleitet. Logging-Level, die auch zur Laufzeit verändert werden können, legen fest, welche Meldungen in das Logingsystem geleitet werden. log4j ist ein Projekt der Apache Software Foundation. Grundlage diese Artikels ist log4j in der Version 1.2.15.
log4j kann von der Apache - log4j Homepage heruntergeladen werden. Nach dem herunterladen muss die gepackte Datei in ein Verzeichnis der eigenen Wahl entpackt werden. Ein Installationsprogramm oder ähnlich braucht nicht ausgeführt werden, da es sich bei log4j um eine Programmbibliothek handelt.
Um mit log4j zu arbeiten muss lediglich sichergestellt werden, dass das
jar log4j-1.2.15.jar
sich im Classpath des entsprechenden
Projektes befindet.
An dieser Stelle wird das obligatorische "Hello world!" - Programm für die log4j Bibliothek vorgestellt. Kompilieren Sie fogedes Programm und starten es:
import org.apache.log4j.*; public class HelloWorldLog4j{ public static void main(String[] args){ Logger logger = Logger.getLogger("ko3logger"); SimpleLayout layout = new SimpleLayout(); ConsoleAppender appender = new ConsoleAppender(layout); logger.addAppender(appender); logger.info("Hello world from log4j!"); } }
Als Ergebnis des Programmablaufs wird in der Konsole der erwartete Gruß ausgegeben.
INFO - Hello world from log4j!
Folgende vordefinierte Log-Level existieren in log4j:
Level.TRACE
Level.DEBUG
Level.INFO
Level.WARN
Level.ERROR
Level.FATAL
Neben den vordefinierten Log-Level können auch eigene Log-Level durch ableiten
der Klasse org.apache.log4j.Level
definiert werden
Weiterhin kann das Log-Level auf Level.ALL
(für alle Log-Ausgaben) und
Level.OFF
(für keine Log-Ausgaben festgelegt werden. Zu diesen
beiden Log-Level exestieren keine entsprechenden Logging-Methoden.
Mit Hilfe von Appender
kann festgelegt werden, wohin die
Logging Informationen geleitet werden sollen. Zwei gängige (aber nicht einzig existierende)
Appender
sind der ConsoleAppender
für
die Ausgabe auf der Konsole und der FileAppender
für
die Ausgabe in einer Datei.
Um die Ausgaben zu formatieren dienen in log4j das so genannte Layout
. Im Beispiel
HelloWorldLog4j
wurde als Appender ein ConsoleAppender
und
als Layout das SimpleLayout
verwendet.
Basis für die Layout-Definition ist die abstrakte Klasse
org.apache.log4j.Layout
. Konkrete Implementierungen in log4j sind:
SimpleLayout
PatternLayout
HTMLLayout
XMLLayout
DateLayout
NDC ist ein Akronym für: Nested Diagnostic Context.
MDC ist ein Akronym für; Mapped Diagnostic Context.
NDC und MDC dienen dazu log-Informationen aus verschiedenen Quellen zu differenzieren.
Beide verfahren werden mit gleichnamigen Klassen von log4j unterstü. Gleich
ist beiden Klassen, dass sie auf thread
-Basis arbeiten. Der wesentliche
Unterschied liegt darin, dass NDC stack - basiert und MDC map - basiert arbeitet.
Apache Software Foundation
Home - Apache log4j
Apache log4j
Ceki Gülcü
Short introduction to log4j
http://logging.apache.org/log4j/1.2/manual.html
de.wikipedia.org
log4j
http://de.wikipedia.org/wiki/Log4J
Torsten Horn
Logging mit log4j
http://www.torsten-horn.de/techdocs/java-log4j.htm
Dirk Schnelle
http://www.javacore.de/tutorials.php
log4jmanual.pdf