Suche

Neues Logging-Framework Blitz4j: Der ultimative log4j-Nachfolger?

Hartmut Schlosser

In regelmäßigen Abständen beglückt uns das Videoverleih-Unternehmen Netflix derzeit mit Stücken ihrer IT-Infrastruktur. Berichteten wir am Montag von der Cloud-Performance-Library Hystrix, die Netflix Open Source zur Verfügung gestellt hat, ist heute das Logging-Framework Blitz4j an der Reihe, das von einigen bereits als log4j-Nachfolger gefeiert wird.

Was sind die Eckdaten von Blitz4j?

Das Blitz4j-Logging-Framework basiert auf dem verbreiteten log4j-Projekt, ist aber auf die Anforderungen von Multithreading und hochskalierbaren Anwendungen ausgelegt. Durch das Framework soll die Anwendungsperformance nicht beeinträchtigt werden, typische Flaschenhälse des log4j-Frameworks sollen vermieden werden. Blitz4j kann asynchron arbeiten und verfügt über die Funktion, existierende log4j Appenders zu konvertieren und im Rahmen des asynchronen Modells zu verarbeiten. In Situationen des sogenannten „Logging-Sturms“, also zu besonders Event-intensiven Zeiten, erlaubt ein Mechanismus die Zusammenfassung von Log-Informationen, sodass das System nicht ausgebremst wird.

Bei Netflix ist Blitz4j im Einsatz, um Milliarden von Events zu Monitoring- und Reporting-Zwecken festzuhalten. Zum Hintergrund des Frameworks heißt es auf der Netflix-Seite, Blitz4j sei entstanden, als man mit log4j an Grenzen gestoßen sei:

At Netflix, log4j has been used as a logging framework for a few years. It had worked fine for us, until the point where there was a real need to log lots of data. When our traffic increased and when the need for per-instance logging went up, log4j’s frailties started to get exposed.

Warum also Blitz4j? Um die Deadlock-Anfälligkeit des log4j-Multithreading zu überwinden:

If the log4j used any of the concurrent data structures with JDK 1.5 and above, most of the problems would be solved. That is exactly what blitz4j does. Blitz4j overrides key parts of the log4j architecture to remove the locks and replace them with concurrent data structures.

Wissen sollte man aber auch, dass Blitz4j den Fokus explizit nicht auf akkurates Logging, sondern auf Anwendungs-Performance und Stabilität legt.

Blitz4j leans more towards the asynchronous model of logging and tries to make the logging useful by retaining the time-order of logging messages.

Ein interessantes Projekt, das seit Ende November quelloffen auf GitHub bereit steht. Weitere Infos finden interessierte Leser auf dem Wiki und in der Projektankündigung.

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.