Kleine Helfer

Log4J - das flexible Log-System für Java

18.03.2013
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.
Wer ein einfaches, hochperformantes, aber vor allem flexibles Framework zum Loggen von Programmmeldungen in Java-Projekten sucht, der wird bei "Log4J” fündig.
Wie diese beispielhafte Klasse zeigt, ist die Arbeit mit Log4J sehr einfach.
Wie diese beispielhafte Klasse zeigt, ist die Arbeit mit Log4J sehr einfach.
Foto: Diego Wyllie

Das erste Release von Log4J wurde bereits im Jahr 1996 veröffentlicht. Seitdem hat sich die Open-Source-Lösung, die mittlerweile zentraler Bestandteil des "Logging-Services”-Projekts der Apache Software Foundation ist, kontinuierlich weiterentwickelt. Durch ihren hohen Reifegrad und ihre einfache Konfigurierbarkeit gilt sie für viele Java-Entwickler als das Log-System der ersten Wahl.

Das Framework besteht grundsätzlich aus drei Hauptkomponenten: "Loggers”, "Layouts” und "Appenders”. Loggers dienen dazu, Fehler-, Info- und Warnmeldungen an das gewählte Logging-System weiterzuleiten (siehe Screen). Über verschiedene, so genannte Priority-Levels (Off, Fatal, Error, Warn, Info, Debug, Trace, All) kann der Programmierer definieren, welche Meldungen geloggt werden sollen.

Anstatt auftretende Fehler auf der Standardausgabe zu melden, lassen sich mittels Appender weitere Ausgabekanäle definieren. So schreibt beispielsweise der "FileAppender” sämtliche Logs in eine Datei, während der "JDBCAppender” dies für eine beliebige Datenbank übernimmt. Zudem können Logs per E-Mail gesendet oder ins Ereignisprotokoll des Windows-Betriebssystems geschrieben werden. Schließlich dienen Layouts dazu, die Formatierung der Ausgabe zu definieren. Neben unformatiertem Text werden gängige Formate wie XML oder HTML unterstützt.

Die Konfiguration von Log4J erfolgt entweder programmatisch im Sourcecode oder über eine Property- beziehungsweise XML-Datei, wobei die zweite Option mehr Flexibilität bietet, da sie zum Beispiel eine Umschaltung der Logging-Levels zur Laufzeit und ohne Neukompilierung erlaubt.

CW-Fazit: Log4J gilt als eines der besten Logging-Frameworks für Java-Projekte und hat sich über die Jahre zum De-facto-Standard entwickelt. Mittlerweile gibt es für jede populäre Programmiersprache eine entsprechende Lösung, die auf den Log4J-Konzepten aufbaut. (ph)