Java-Logging-Framework tinylog in Version 2.0 erschienen
tinylog 2 ist eine komplette Neuentwicklung mit neuen Features wie Tags, Lazy Evaluation von Log-Nachrichten und nativen APIs für Kotlin und Scala.
![Java-Logging-Framework tinylog in Version 2.0 erschienen](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/7/3/4/5/7/3/logging-a76b131cd5180236.jpeg)
- Alexander Neumann
Nach drei Jahren Entwicklungszeit steht nun die finale Version 2.0 des Java-Logging-Frameworks tinylog zum Download bereit. Neben Java werden das mobile Betriebssystem Android und die beiden Programmiersprachen Scala und Kotlin unterstützt. Für Scala und Kotlin führt tinylog 2 separate Logging-APIs ein, die in der jeweiligen Programmiersprache implementiert sind. Auf diese Weise sollen sich Ansätze der beiden Programmiersprachen ohne Workarounds zum Logging verwenden lassen. Zum Beispiel kann tinylog mit Higher-Order-Funktionen und Lambdas zur Lazy Evaluation von Log-Nachrichten umgehen.
In tinylog 2 ist es außerdem möglich, einzelne Log-Nachrichten über eine Fluent-API mit Tags zu versehen. Diese lassen sich zusammen mit einer Log-Nachricht ausgeben, aber auch zur Konfiguration der Writer verwenden, die sich um die Ausgabe der Log-Nachrichten kümmern. In tinylog kann nun die Ausgabe über die Konsole, Log-Dateien, SQL-Datenbanken und Logcat (Androids Logging-System) erfolgen. Dabei können einzelne Writer an einen oder mehrere Tags gebunden werden, sodass nur Log-Nachrichten mit passenden Tags über den entsprechenden Writer ausgegeben werden.
Über optionale JAR-Dateien unterstützt tinylog 2 die Logging-API der Logging-Frameworks Apache Commons Logging, Apache Log4j, Java Util Logging (JUL), JBoss Logging und SLF4J. Das bedeutet, dass sich Bibliotheken, die eines dieser Frameworks zum Logging einsetzen, mit tinylog 2 zusammen verwenden lassen. Log-Nachrichten werden an tinylog zur Verarbeitung und Ausgabe automatisch weitergeleitet.
Wird tinylog 2 auf einem Web- oder Application-Server eingesetzt, kann die Ausgabe über das Logging-Backend des Servers erfolgen. Dafür stellt das Projekt separate JAR-Dateien bereit. Unterstützt werden beispielsweise GlassFish und Tomcat über Java Util Logging (JUL) sowie Wildfly und JBoss EAP über JBoss Logging. In der neuen Version ist es zudem möglich, Log-Einträge parallel über das native Logging-Backend von tinylog 2 und das eines Servers auszugeben.
Im Gegensatz zu anderen Java-Logging-Projekten nutzt tinylog 2 eine statische Logger-Klasse. Damit entfällt offenbar das manuelle Instanziieren des Loggers in jeder einzelnen Klasse, in das Logging stattfinden soll. Der Quellcode des Open-Source-Projekts steht auf GitHub unter der Apache-Lizenz 2.0 zur freien Verfügung. (ane)