Log4j

Log4j

log4j ist ein Framework zum Loggen von Anwendungsmeldungen in Java. Es wird von unzähligen Open-Source- als auch kommerziellen Softwareprodukten verwendet und hat sich als De-facto-Standard etabliert.

Das Projekt wurde von Ceki Gülcü während seiner Arbeit am IBM-Entwicklungslabor Zürich gegründet. Heute ist es ein Teil des Logging-Projekts der Apache Software Foundation und steht unter der Apache-Lizenz. Es entstand zu einer Zeit, als es in den Java-Standardbibliotheken noch keine Logging-Mechanismen gab. Heutzutage ist es durch seine Ausgereiftheit und Konfigurierbarkeit für viele Softwareentwickler das Log-System der ersten Wahl.

Inhaltsverzeichnis

Funktionsweise

Anstatt auftretende Fehler und Infomeldungen auf die Standardausgabe auszugeben, wird die Nachricht über sogenannte Logger in das Loggingsystem geleitet und gleichzeitig eine Einteilung der Wichtigkeit vorgenommen. Der Programmierer muss sich beim Erstellen des Programms nur um die Wichtigkeit der Meldungen Gedanken machen. Die Filterung und Art der Ausgabe kann zur Laufzeit konfiguriert werden.

Ausgabe-Umfang

In der Konfigurationsdatei kann die Ausgabe je nach Wichtigkeit der Nachrichten gefiltert werden. Der Ausgabe-Umfang steigt mit der zugewiesenen Wichtigkeitsstufe und umfasst alle Nachrichten der Stufe selbst, sowie aller noch dringenderen Stufen. Die Reihenfolge stellt sich dabei wie folgt dar:

ALL > TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF

TRACE beinhaltet dabei normalerweise selbst Ausgaben mit Kommentarcharakter, während die Reduzierung auf FATAL nur noch Ausgaben über schwere Programmfehler durchlassen wird. Die beiden Stufen ALL und OFF haben die umfangreichste bzw. überhaupt keine Ausgabe zur Folge.

Für die Einstufung der Wichtigkeit gelten folgende Richtwerte:

ALL
Alle Meldungen werden ungefiltert ausgegeben
TRACE
ausführlicheres Debugging (seit Version 1.2.12)
DEBUG
allgemeines Debugging (Methode DiesUndDas wurde mit Parameter SoUndSo aufgerufen …)
INFO
allgemeine Informationen (Programm gestartet, Programm beendet, Verbindung zu Host Foo aufgebaut, Verarbeitung dauerte SoUndSoviel Sekunden …)
WARN
Auftreten einer unerwarteten Situation
ERROR
Fehler (Exception wurde gefangen. Bearbeitung wurde alternativ fortgesetzt)
FATAL
Kritischer Fehler, Programmabbruch
OFF
Logging ist deaktiviert

Appender

Mittels Appender kann je nach Wunsch auf Standardausgabe, in eine Datei, ins Systemlog oder in beliebige andere Ziele geschrieben werden bzw. in alle gleichzeitig.

Appender-Arten

ConsoleAppender
Gibt auf Standardausgabe aus
FileAppender
Schreibt in eine Datei
RollingFileAppender
Beginnt eine neue Datei ab einer gewissen Größe
DailyRollingFileAppender
Beginnt zu gewissen Zeiten mit einer neue Datei
SyslogAppender
Loggt mittels Syslog-Dienst
NTEventLogAppender
Schreibt ins Ereignisprotokoll des Windows-Systems
SMTPAppender
Schickt bei gewissen Meldungen eine Mail.
SocketAppender
Sendet die LogMessage an einen konfigurierten Socket-Listener.

Es gibt auch noch weitere Appender.

Weitere Features

Das Format der Nachrichten kann individuell konfiguriert werden. Neben der reinen Nachricht kann mittels Muster zusätzlich Wichtigkeit, Datum, Loggername, Klassenname, Methodenname bis zur genauen Codezeile ausgegeben werden. Die Namen der Logger können zwar theoretisch beliebig sein, häufig wird sich pragmatisch dazu entschieden den Namen einer Klasse oder eines Pakets zu wählen, um so die Ausgaben entsprechend der Softwarestruktur separat filtern und ausgeben zu können.

Ein weiteres nützliches Feature ist der Mapped Diagnostic Context. Dabei wird einer Contextvariablen ein Wert zugewiesen und in der Konfigurationsdatei kann darauf referenziert werden. Dabei hat jeder Thread seinen eigenen Context und kann zusätzliche Informationen wie z. B. die Adresse des Clients bei einer Serveranwendung protokollieren.

Bedeutung

Derzeit wird versucht, log4j-ähnliche Systeme für andere Programmiersprachen unter dem Apache-Logging-Projekt zusammenzuführen.

Die Ausstrahlung der Log4j-Konzepte auf andere Programmiersprachen bzw. Plattformen ist so groß, dass es mittlerweile etliche Adaptionen gibt:

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • log4j — Maintainer Ceki Gülcü, C. Arnold Entwickler Apache Software Foundation Aktuelle Version 1.2.16 (6. April 2010) Betriebssystem plattformunabhängig …   Deutsch Wikipedia

  • Log4J — ist ein Framework zum Loggen von Anwendungsmeldungen in Java. Es wird von unzähligen Open Source als auch kommerziellen Softwareprodukten verwendet und hat sich als De facto Standard etabliert. Das Projekt wurde von Ceki Gülcü während seiner… …   Deutsch Wikipedia

  • Log4j — Apache log4j Desarrollador Apache Software Foundation http://logging.apache.org/log4j Información general Última versión estable 1.2.16 …   Wikipedia Español

  • Log4j — Infobox Software name = Apache log4j caption = developer = Apache Software Foundation latest release version = 1.2.15 latest release date = release date|2007|09|29 latest preview version = latest preview date = operating system = Cross platform… …   Wikipedia

  • Log4j — Apache log4j Тип Журналирование Разработчик Apache Software Foundation Написана на Java Операционная система Кроссплатформенное ПО Последняя версия 1.2.16 (6 апреля 2010) …   Википедия

  • Log4J — Apache Jakarta Jakarta est un ensemble de projets de logiciels libres, écrits en langage Java, développés par la fondation Apache de manière collaborative et consensuelle et tous publié sous licence Apache. Sous projets Les sous projets Jakarta… …   Wikipédia en Français

  • Log4net — log4j ist ein Framework zum Loggen von Anwendungsmeldungen in Java. Es wird von unzähligen Open Source als auch kommerziellen Softwareprodukten verwendet und hat sich als De facto Standard etabliert. Das Projekt wurde von Ceki Gülcü während… …   Deutsch Wikipedia

  • Java logging frameworks — multipleissues refimprove = June 2008 OR = June 2008 copyedit = June 2008Java logging frameworks are computer data logging packages for the Java platform.Logging is a common issue for most development teams. There have been several frameworks… …   Wikipedia

  • TTCC — [http://logging.apache.org/log4j/docs/api/org/apache/log4j/TTCCLayout.html TTCC] is a message format used by Log4j. TTCC is acronym for Time Thread Category Component . It uses the following pattern: %r [%t] % 5p %c %x %m WhereExample output 467… …   Wikipedia

  • Ceki Gülcü — is the founder of the log4j project and the author of [http://www.qos.ch/shop//products/log4j/log4j Manual.jsp The complete log4j manual ] . Ceki has since started the SLF4J and Logback projects, with the intention of offering a compatible… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”