© Excellent backgrounds/Shutterstock.com
Java Magazin
Mit Version 2 soll alles besser werden

Das Comeback des Jahres

Wer hätte das gedacht? Nachdem log4j 1 seit Jahren nur noch vor sich hin dümpelt, macht seit einigen Monaten ein eher überraschendes Gerücht die Runde: log4j 2.0 wird kommen. Das Apache-Logging-Projekt hat vor Kurzem den Entwicklungs-Branch für log4j 2.0 in den Main Branch geschoben.

Christian Grobmeier


Wenn etwas einmal im Main Branch liegt, dann wird es ernst genommen. Zumindest von den Entwicklern. Doch auch einige User zeigen sich mittlerweile vom zweiten Teil der log4j-Saga beeindruckt. Apache log4j 2.0 hat im Prinzip alles, was man sich heute so wünschen kann. Ein Release rückt immer näher. Es ist Zeit, einen genaueren Blick darauf zu werfen. Aber zunächst ein wenig Geschichte. Das E.U.-Semper-Projekt begann 1996, ein eigenes Logging-API zu schreiben. Nach zahlreichen Verbesserungen wurde daraus Apache log4j und damit das bis dato erfolgreichste Java-Logging-API. Doch dann kam es zu technischen Differenzen, die nicht einfach beigelegt werden konnten. Ceki Gülcü, der log4j zu Apache brachte, begann seine Ideen in Logback und SLF4J umzusetzen. Das log4j-Team versuchte eine Version 1.3 herauszubringen – doch dies war mit weniger Erfolg gekrönt. Seitdem stagnierte die Entwicklung, wenn man von gelegentlichen Bugfix-Releases einmal absieht. Bis zu dem Zeitpunkt, an dem Ralph Goers einen ersten Entwurf für log4j 2.0 vorstellte und seitdem kontinuierlich daran arbeitete, bis jetzt langsam tatsächlich ein Release in Sicht rückt.

Was ist besser an Apache log4j 2.0?

Apache log4j 2.0 lernt nicht nur aus den Erfahrungen der 1er-Linie. Auch der von der Firma QOS vorangetriebenen Logback-Implementierung hat man auf die Finger geschaut. Man lernt also aus den Schwächen der vorhandenen Frameworks: Beispielsweise verlieren log4j 1 und Logback-Logging-Events, wenn das Logging-System neu konfiguriert wird. Dies ist mit log4j 2.0 nicht der Fall. Exceptions, die in den Appender-Klassen auftreten (Appender „hängen“ das Logging-Event an die Ausgabe, also z. B. das Logfile), werden von Logback verschluckt – mit log4j 2.0 kann man diese Exceptions optional ausgeben lassen. Apache log4j 2.0 verfügt über ein einfaches Plug-in-System. Damit ist es sehr einfach möglich, eigene Erweiterungen zu schreiben. Außerdem sieht die Konfiguration bei Weitem einfacher aus, weil beispielsweise Klassennamen nicht mehr darin enthalten sind. Während log4j 1.x und Logback Strings als Layout zurückgeben, verwendet ­log4j 2.0 Byte-Arrays. Damit erhält man eine höhere Flexibilität, wenn es um die Auswahl der Appender geht, denn es können jetzt auch solche Appender verwendet werden, die nicht in einen Output-Stream schreiben. Außerdem verwendet log4j 2.0 die Concurrency-Klassen aus Java 5. Threads und Locking werden mit ihrer Hilfe auf einem möglichst niedrigen Level und damit atomar angewandt. D...

Java Magazin
Mit Version 2 soll alles besser werden

Das Comeback des Jahres

Wer hätte das gedacht? Nachdem log4j 1 seit Jahren nur noch vor sich hin dümpelt, macht seit einigen Monaten ein eher überraschendes Gerücht die Runde: log4j 2.0 wird kommen. Das Apache-Logging-Projekt hat vor Kurzem den Entwicklungs-Branch für log4j 2.0 in den Main Branch geschoben.

Christian Grobmeier


Wenn etwas einmal im Main Branch liegt, dann wird es ernst genommen. Zumindest von den Entwicklern. Doch auch einige User zeigen sich mittlerweile vom zweiten Teil der log4j-Saga beeindruckt. Apache log4j 2.0 hat im Prinzip alles, was man sich heute so wünschen kann. Ein Release rückt immer näher. Es ist Zeit, einen genaueren Blick darauf zu werfen. Aber zunächst ein wenig Geschichte. Das E.U.-Semper-Projekt begann 1996, ein eigenes Logging-API zu schreiben. Nach zahlreichen Verbesserungen wurde daraus Apache log4j und damit das bis dato erfolgreichste Java-Logging-API. Doch dann kam es zu technischen Differenzen, die nicht einfach beigelegt werden konnten. Ceki Gülcü, der log4j zu Apache brachte, begann seine Ideen in Logback und SLF4J umzusetzen. Das log4j-Team versuchte eine Version 1.3 herauszubringen – doch dies war mit weniger Erfolg gekrönt. Seitdem stagnierte die Entwicklung, wenn man von gelegentlichen Bugfix-Releases einmal absieht. Bis zu dem Zeitpunkt, an dem Ralph Goers einen ersten Entwurf für log4j 2.0 vorstellte und seitdem kontinuierlich daran arbeitete, bis jetzt langsam tatsächlich ein Release in Sicht rückt.

Was ist besser an Apache log4j 2.0?

Apache log4j 2.0 lernt nicht nur aus den Erfahrungen der 1er-Linie. Auch der von der Firma QOS vorangetriebenen Logback-Implementierung hat man auf die Finger geschaut. Man lernt also aus den Schwächen der vorhandenen Frameworks: Beispielsweise verlieren log4j 1 und Logback-Logging-Events, wenn das Logging-System neu konfiguriert wird. Dies ist mit log4j 2.0 nicht der Fall. Exceptions, die in den Appender-Klassen auftreten (Appender „hängen“ das Logging-Event an die Ausgabe, also z. B. das Logfile), werden von Logback verschluckt – mit log4j 2.0 kann man diese Exceptions optional ausgeben lassen. Apache log4j 2.0 verfügt über ein einfaches Plug-in-System. Damit ist es sehr einfach möglich, eigene Erweiterungen zu schreiben. Außerdem sieht die Konfiguration bei Weitem einfacher aus, weil beispielsweise Klassennamen nicht mehr darin enthalten sind. Während log4j 1.x und Logback Strings als Layout zurückgeben, verwendet ­log4j 2.0 Byte-Arrays. Damit erhält man eine höhere Flexibilität, wenn es um die Auswahl der Appender geht, denn es können jetzt auch solche Appender verwendet werden, die nicht in einen Output-Stream schreiben. Außerdem verwendet log4j 2.0 die Concurrency-Klassen aus Java 5. Threads und Locking werden mit ihrer Hilfe auf einem möglichst niedrigen Level und damit atomar angewandt. D...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang