Neuigkeiten
P2-Repository für tinylog 1.3.6
4. Mai 2020
Gute Neuigkeiten für Eclipse RCP und Plug-in Entwickler! Es gibt jetzt ein offizielles P2-Repository für tinylog 1.3.6: http://tinylog.org/p2-repository/1.3.6/
Update für tinylog 1.3
11. Februar 2019
tinylog 1.3.6 behebt eine ConcurrentModificationException, die auftreten kann, wenn sich die System-Properties beim Laden der Konfiguration ändern. Vielen Dank an trebouillon für die Identifizierung dieses Problems.
Bessere Unterstützung für alternative JVMs
7. Mai 2018
In der neuen Version 1.3.5 setzt tinylog nicht mehr voraus, dass die System-Properties "java.runtime.name" und "os.name" gesetzt sind. Damit läuft tinylog selbst auf älteren alternativen JVMs wie JamVM.
Neues Update für tinylog 1.3
23. Februar 2018
tinylog 1.3.4 behebt einen Fehler im File-Writer, der verhindert hat, dass Umgebungsvariablen im Dateinamen zuverlässig aufgelöst wurden. Vielen Dank an f4lco für den Pull-Request.
Update für tinylog 1.3
20. Februar 2018
tinylog 1.3.3 behebt einen Fehler, der verhindert hat, dass der Rolling-File-Writer beim Starten überzählige alte Back-up-Log-Dateien löscht.
Aktualisierter Benchmark ist online
25. Januar 2018
Im Benchmark wurden alle Logging-Frameworks auf die neuste Version aktualisiert. tinylog 1.3.2 ist um wenige Millisekunden schneller als die vorherige Version 1.2. Log4j 2.10 ist im Vergleich zur Version 2.8 deutlich langsamer geworden (bis zu 2 Sekunden) und verliert teilweise einige wenige Log-Einträge. Ideen und Vorschläge, wie die Konfiguration optimiert werden könnte, sind willkommen.
Update für tinylog 1.3
18. Dezember 2017
tinylog 1.3.2 behebt Fehler in den OSGi-Bundle-Deklarationen, die zu Resolving-Problemen beim Laden der OSGi-Bundles in Apache Felix und anderen OSGi-Umgebungen geführt haben.
tinylog wird bunt
28. November 2017
Tobias Mayer hat auf GitHub einen neuen Writer für tinylog veröffentlicht, über den sich Log-Einträge in der Bash-Console komfortabel einfärben lassen. Mit dem neuen Colored-Console-Writer können die Farben sogar abhängig des Logging-Levels konfiguriert werden.
tinylog 1.3 ist fertig
14. November 2017
tinylog 1.3 ist fertig und kann ab sofort heruntergeladen werden. Die finale Version enthält alle Features und Änderungen aus den beiden Release Candidates. Da während der Veröffentlichung ein Bug im Zusammenhang mit Java 9.0.1 aufgetreten ist, erfolgt gleich der Sprung auf die Version 1.3.1, die auch unter Java 9.0.1 korrekt funktioniert.
Zweiter Release Candidate von tinylog 1.3 veröffentlicht
7. Oktober 2017
Der zweite Release Candidate von tinylog 1.3 ist fertig und kann ab sofort heruntergeladen werden. tinylog 1.3 ist jetzt "Feature Complete".
Änderungen:
- Logging-Meldungen und -Parameter können als Lambda-Ausdruck übergeben werden. Dies ist für Meldungen und Parameter sinnvoll, deren Berechnung aufwendig ist, da die Lambda-Ausdrücke nur dann ausgewertet werden, wenn der Log-Eintrag auch wirklich ausgegeben wird.
- Verbesserte Performance für den JDBC-Writer durch Wiederverwendung von SQL-Statements
- Der Output-Stream für den Console-Writer ist jetzt konfigurierbar. Standardmäßig werden Warnungen und Fehler im Error-Stream und alle anderen Logging-Level im Standard-Output-Stream ausgegeben. Es ist nun z. B. möglich alle Log-Einträge unabhängig vom Logging-Level im Error-Stream oder Standard-Output-Stream auszugeben.
Erster Release Candidate von tinylog 1.3 veröffentlicht
25. September 2017
Der erste Release Candidate von tinylog 1.3 ist fertig und kann ab sofort heruntergeladen werden. Der Fokus der neuen Version liegt auf Unterstützung für Java 9.
Änderungen:
- Nutzung der neuen Standard-API von Java 9 zur Ermittlung der Prozess-ID und Stack-Trace-Elementen
- Unterstützung für Mikrosekunden und Nanosekunden unter Java 9
- Einstellung des Supports für Java 5 (tinylog 1.3 benötigt mindestens Java 6)
Benchmark: tinylog 1.1 vs 1.2
15. März 2017
Das Projekt tinylog enthält Benchmarks um Performance-Probleme in neuen Releases von tinylog zu verhindern. Beide Benchmarks sind auf der selben Maschine jeweils mit tinylog 1.1 and 1.2 ausgeführt worden.
Maximal möglicher Output (in einer Schleife eine Million mal Log-Einträge erzeugen)
tinylog 1.2 mit Writing-Thread |
|
---|---|
tinylog 1.1 mit Writing-Thread |
Einfluss auf rechenintensive Anwendung (alle Primzahlen von 2 bis 10.000.000 berechnen)
tinylog 1.2 mit Writing-Thread |
|
---|---|
tinylog 1.1 mit Writing-Thread |
Alle Parameter und die Messmethode sind auf der Benchmark-Seite dokumentiert.
tinylog 1.2 ist fertig
24. Februar 2017
tinylog 1.2 ist fertig und kann ab sofort heruntergeladen werden. Da für den dritten Release Candidate keine Bugs gemeldet wurden, konnte dieser unverändert als finale Version 1.2 veröffentlicht werden.
Neue Features:
- Vollständige Unterstützung von Android inklusive eines Logcat-Writers
- Neue alternative JARs zur Weiterleitung von Log-Einträgen an das Logging-System des Application Servers
- Auflösung von Umgebungsvariablen in Pfaden, wie z. B. "${home}"
- Unterstützung zum Laden von Konfigurationen aus einem beliebigen Input-Stream
- Unterstützung von Java-EE-Data-Sources im JDBC-Writer
- Option zur automatischen Wiederherstellung der Datenbankverbindung bei Verbindungsabbrüchen im JDBC-Writer
- Konfigurationen können als URL definiert werden, um diese übers Netzwerk oder Internet zu laden
- Unterstützung für bedingte Formatierungen in Logging-Nachrichten
- Unterstützung von benutzerdefinierten Formatierungen von Zahlen in Logging-Nachrichten
Bug-Fixes:
- Fehler beim Löschen von Backup-Dateien durch den RollingFileWriter behoben, wenn die StartupPolicy zusammen mit dem TimestampLabeler oder ProcessIdLabeler aktiv ist
- NullPointerException behoben, wenn tinylog durch den BootstrapClassLoader geladen wird (Danke an cristianspinetta)
tinylog 1.2-rc3 veröffentlicht
8. Februar 2017
NullPointerException behoben, wenn tinylog durch den BootstrapClassLoader geladen wird (Danke an cristianspinetta).
tinylog 1.2-rc2 veröffentlicht
23. Januar 2017
Fehler beim Löschen von Backup-Dateien durch den RollingFileWriter behoben, wenn die StartupPolicy zusammen mit dem TimestampLabeler oder ProcessIdLabeler aktiv ist.
Erster Release Candidate von tinylog 1.2 veröffentlicht
12. Januar 2017
Der erste Release Candidate von tinylog 1.2 ist fertig und kann ab sofort heruntergeladen werden. tinylog 1.2 ist jetzt "Feature Complete". Somit wird es nur noch Bug-Fixes geben. Wie bereits bei tinylog 1.0 und 1.1, wird der erste Release Candidate, für den keine Fehler gemeldet werden, unverändert als die finale Version 1.2 erscheinen.
Änderungen:
- Konfigurationen können als URL definiert werden, um diese übers Netzwerk oder Internet zu laden
- Unterstützung für bedingte Formatierungen in Logging-Nachrichten
- Unterstützung von benutzerdefinierten Formatierungen von Zahlen in Logging-Nachrichten
Erste Beta von tinylog 1.2 veröffentlicht
13. Oktober 2016
Die erste Beta-Version von tinylog 1.2 ist erschienen und kann ab sofort heruntergeladen werden. Feedback, Bug-Reports und Feature-Requests sind jederzeit willkommen!
Neue Features:
- Vollständige Unterstützung von Android inklusive eines Logcat-Writers
- Neue alternative JARs zur Weiterleitung von Log-Einträgen an das Logging-System des Application Servers
- Auflösung von Umgebungsvariablen in Pfaden, wie z. B. "${home}"
- Unterstützung zum Laden von Konfigurationen aus einem beliebigen Input-Stream
- Unterstützung von Java-EE-Data-Sources im JDBC-Writer
- Option zur automatischen Wiederherstellung der Datenbankverbindung bei Verbindungsabbrüchen im JDBC-Writer
tinylog kann unter Android ausprobiert werden
17. August 2016
Die zweite Alpha-Version von tinylog 1.2 unterstützt Android und enthält einen neuen LogcatWriter zum Weiterleiten von Log-Einträge an Androids natives Logging-System (bekannt als logcat). Testen und Feedback sind ausdrücklich erwünscht!
Benchmark-Vergleich zwischen tinylog 1.0 und 1.1
14. April 2016
Maximal möglicher Output (in einer Schleife eine Million mal Log-Einträge erzeugen)
tinylog 1.1 mit Writing-Thread |
|
---|---|
tinylog 1.0 mit Writing-Thread |
Einfluss auf rechenintensive Anwendung (alle Primzahlen von 2 bis 10.000.000 berechnen)
tinylog 1.1 mit Writing-Thread |
|
---|---|
tinylog 1.0 mit Writing-Thread |
Alle Parameter und die Messmethode sind auf der Benchmark-Seite dokumentiert.
tinylog 1.1 ist fertig
5. April 2016
tinylog 1.1 ist fertig und kann ab sofort heruntergeladen werden. Da für den vierten Release Candidate keine Bugs gemeldet wurden, konnte dieser wie geplant unverändert als finale Version 1.1 veröffentlicht werden.
Neue Features:
- Threadbasierter Mapped-Logging-Context (MDC) zum Anreichern von Log-Einträgen um zusätzliche Informationen
- Cachen von gerenderten Datum- bzw. Uhrzeit-Werten
- Platzhalter im Logging-Format-Pattern einrückbar
- Logging-Level der Writers automatisch erben, falls kein globales Logging-Level gesetzt wurde
- Binding für Apache Commons Logging (JCL)
- Erweiterung der Apache Log4j 1.x Logging API
- Append-Modus für SharedFileWriter und FileWriter
Neuer Release Candidate für tinylog 1.1 und Update für tinylog 1.0
27. März 2016
NullPointerException behoben, wenn der vom Writing-Thread zu beobachtende Thread nicht existiert
tinylog 1.1-rc3 veröffentlicht
21. März 2016
Korrekte Ausgabe des Stack-Traces von Exceptions, die über die SLF4J-API als letzter Parameter übergeben werden
tinylog 1.1-rc2 veröffentlicht
15. Februar 2016
Kleiner Fix für Logging-Context im Zusammenspiel mit JDBC-Writers
Erster Release Candidate von tinylog 1.1 veröffentlicht
24. Januar 2016
Der erste Release Candidate von tinylog 1.1 ist fertig und kann ab sofort heruntergeladen werden. tinylog 1.1 ist jetzt "Feature Complete". Somit wird es nur noch Bug-Fixes geben. Wie bereits bei tinylog 1.0, wird der erste Release Candidate, für den keine Fehler gemeldet werden, unverändert als die finale Version 1.1 erscheinen.
Änderungen:
- Konfigurierbarer Append-Modus für SharedeFileWriter und FileWriter
- Verbesserte Einrückung von Stack-Traces bei manueller Definition der Einrücktiefe über "indent"
- Fix für Mapped Diagnostic Context (MDC) im Zusammenspiel mit SLF4J
Update für tinylog 1.0
18. Januar 2016
tinylog 1.0.3 behebt die Verwendung von Mapped Diagnostic Context (MDC) im Zusammenspiel mit SLF4J.
Dritte Beta von tinylog 1.1 veröffentlicht
27. Dezember 2015
Die dritte Beta von tinylog 1.1 umfasst erstmals ein optionales Binding für Apache Commons Logging (JCL). Log-Einträge aus Frameworks und Bibliotheken, die Apache Commons Logging nutzen, können über tinylog ausgegeben werden, wenn das JCL Binding Bestandteil des Classpath ist. Zum Beispiel nutzt das Spring Framework Apache Commons Logging. Die Beta-Version von tinylog und das neue JCL Binding können ab sofort heruntergeladen werden.
Zweite Beta von tinylog 1.1 veröffentlicht
20. Dezember 2015
Die zweite Beta-Version von tinylog 1.1 ist verfügbar und kann ab sofort heruntergeladen werden.
Änderungen:
- Automatisches Abschneiden des "Anonymous"-Anteil von Klassennamen
- Fehlerbehebungen in FileWriter und SharedFileWriter für Linux
Erste Beta von tinylog 1.1 veröffentlicht
6. Dezember 2015
Heute ist die erste Beta-Version von tinylog 1.1 erschienen und kann ab sofort heruntergeladen werden. Feedback (positives und negatives) ist jederzeit willkommen!
Neue Features:
- Unterstützung von threadbasierten Mapped Diagnostic Context (ebenfalls im SLF4J-Binding und in der Log4j-Facade)
- Frei definierbare Einrücktiefe von Platzhaltern in Logging-Format-Patterns
- Cachen von gerenderten Zeitstempeln
- Unterstützung von Resource-Bundles in der Log4j-Facade
- Unterstützung parametrisiertes Logging in der Log4j-Facade
Update für tinylog 1.0
2. Oktober 2015
tinylog 1.0.2 kann wieder über System-Properties konfiguriert werden, auch wenn keine tinylog.properties-Datei im Default-Package liegt.
Update für tinylog 1.0
1. August 2015
In tinylog 1.0.1 werden noch nicht vorhandene Verzeichnisse von allen dateibasierten Writers automatisch angelegt, falls der Pfad zur Log-Datei nicht existiert.
tinylog 1.0 ist fertig
30. März 2015
tinylog 1.0 ist fertig und kann ab sofort heruntergeladen werden. Aus Stabilitätsgründen war geplant, den ersten Release Candidate, für den keine Bugs gemeldet werden, als Version 1.0 zu veröffentlichen. Dies war für den dritten Release Candidate der Fall und so konnte dieser unverändert als tinylog 1.0 veröffentlich werden.
Neuer Benchmark online
16. Februar 2015
Der Benchmark wurde komplett überarbeitet und testet nun, neben dem maximal möglichen Output, auch den Einfluss von Logging-Frameworks auf rechenintensive Anwendungen. tinylog 1.0 wird demnächst veröffentlicht werden und für den aktuellen Benchmark wurde bereits die fertige tinylog-Version verwendet.
tinylog 1.0-rc3 veröffentlicht
19. Dezember 2014
Der dritte Release Candidate von tinylog 1.0 ist fertig und kann ab sofort heruntergeladen werden. Es gab ein Bug-Fix, der nur die OSGi-Bundles betrifft.
- Versionsschema für Apache Felix angepasst
tinylog 1.0-rc2 veröffentlicht
8. Dezember 2014
Der zweite Release Candidate von tinylog 1.0 ist fertig und kann ab sofort heruntergeladen werden.
- Performance-Fix in Log4j Facade
- SLF4J Binding für tinylog verfügbar
tinylog 1.0-rc1 veröffentlicht
17. November 2014
Der erste Release Candidate von tinylog 1.0 ist fertig und kann ab sofort heruntergeladen werden. tinylog ist jetzt "Feature Complete" und es wird keine weiteren Änderungen mehr an der API geben.
- Das Schreiben von Log-Einträgen ist deutlich schneller geworden
- Neuen Syntax von Platzhaltern in Logging-Messages:
Logger.info("Teile {} durch {}", a, b)
. Entsprechende Logging-Messages müssen gegebenenfalls für tinylog 1.0 angepasst werden.
Dokumentation aktualisiert
13. Juli 2014
Die Dokumentation wurde in großen Teilen überarbeitet. Vor allem auf die neuen Features und Änderungen aus tinylog 0.9 wird nun deutlich detaillierter eingegangen.
Update für tinylog 0.9
5. Juni 2014
In tinylog 0.9.1 wurde die Instanziierung des JdbcWriters über die Fluent-API korrigiert.
tinylog 0.9 veröffentlicht
3. Juni 2014
Die Version 0.9 ist fertig und kann ab sofort heruntergeladen werden. Dies ist die letzte Beta und alle wesentlichen Features sind umgesetzt. Nächste Version wird der erste Release-Candidate sein und nur noch kleinere Änderungen enthalten.
Neue Features:
- Neue Platzhalter "{class_name}", "{package}", "{pid}" (Prozess-ID) und "{thread_id}" für Logging-Format-Pattern
- Neue Syntax für das Setzen von Logging-Level für einzelne Packages (z.B.: tinylog.level@com.example = trace)
- Mehrere Instanzen einer Anwendung können gleichzeitig in die gleiche Log-Datei schreiben
- ProcessIdLabeler für RollingFileWriter, der für jede Instanz einer Anwendung eine eigene Log-Datei garantiert
- Optionales gepuffertes Schreiben
- Unterstützung von abweichenden Logging-Levels für einzelne Klassen
- Detaillierte Ausgabe von Fehlern und falschen Konfigurationen
- Logging-Writer für SQL-Datenbanken
- Neue Policy zur Limitierung der Anzahl der Log-Einträge pro Log-Datei
- Unterstützung von mehreren Logging-Writers (z.B. gleichzeitige Ausgabe in Konsole und Log-Datei)
Java 8:
- tinylog nutzt nun auch unter Java 8 interne API, wenn dies deutlich schneller ist oder Speicher spart
Update für tinylog 0.8
4. Dezember 2013
In tinylog 0.8.1 wurden einige Bugs behoben und ist ein Zwischenschritt zur Version 0.9, in der es wieder einige neue Features geben wird. tinylog 0.8.1 steht ab sofort als Download zur Verfügung.
Neue Features:
- Optionale Bibliothek log4j-facade für eine mit Log4j 1.x kompatible Logging-API
- Nicht existierende Verzeichnisse bei Pfadangaben zu Log-Dateien werden automatisch erstellt
Bug-Fixes:
- Kompatibilität mit Java 5
- Anlegen von Log-Dateien mit Timestamps nicht möglich
- Logging-Levels für Packages werden ignoriert, wenn diese niedriger als das Standard-Logging-Level des Loggers sind
Neue Dokumentation ist fertig
2. Juni 2013
Die neue Dokumentation ist deutlich umfangreicher als das alte Handbuch und ist nun auf dem aktuellen Stand von tinylog 0.8. Aufgrund des Umfangs ist die neue Dokumentation in fünf Kapitel unterteilt und geht auch auf die Erweiterungsmöglichkeiten von tinylog ein, z. B. wie man einen eigenen Writer schreibt.
tinylog 0.8 veröffentlicht
7. März 2013
Heute ist mit der Version 0.8 die vorletzte Beta-Version von tinylog erschienen. Diese kann ab sofort heruntergeladen werden.
Neue Features:
- Maven-Artefakt
- OSGi-Bundle (z. B. für Eclipse-RCP-Anwendungen)
- Unterstützung von Application Servern wie Glassfish
- Konfiguration von Logger getrennt (zwei verschiedene Klassen)
- Fluent-API für Konfiguration
- Neue Konfiguration können atomar gesetzt werden (mehrere Änderungen werden gleichzeitig aktiv)
- Beobachten und automatisches Neuladen von Konfigurationen in Properties-Dateien
- Erweiterungen an der Schnittstelle für andere Logging-Frameworks (für die geplante Log4j-Facade notwendig)
- Logging-Methoden für beliebige Java-Objekte
- Tests komplett neu geschrieben (jetzt 155 Tests mit einer Code-Abdeckung von 94 %)
Performance:
- Verwendung des schnellen sun.reflect.Reflection.getCallerClass() in Sun/Oracle VMs, um den Klassennamen zu ermitteln
- Schnelleres Erzeugen von Log-Einträgen, wenn keine Parameter übergeben wurden
Bug-Fixes:
- Anstatt des Logging-Levels des Logging-Eintrags wird den Logging-Writers das Logging-Level des Loggers übergeben
- Labellers werden als Property ignoriert
Roadmap online
12. Januar 2013
Die Roadmap zeigt den aktuellen Entwicklungsstand und alle Zwischenschritte zur Version 1.0. Alle Meilensteine werden erscheinen sobald diese fertig sind, hinreichend getestet wurden und die Dokumentation vollständig ist. Auf feste Release-Termine verzichte ich zu Gunsten der Stabilität.
Update für tinylog 0.7
20. August 2012
In tinylog 0.6 und 0.7 gab es einen Performance-Bug, der dazu führen konnte, dass tinylog bei sehr tief verschachtelten Methoden sehr langsam wurde. Dies ist jetzt mit tinylog 0.7.1 korrigiert. Vielen Dank für das Melden des Problems!
tinylog 0.7 veröffentlicht
20. August 2012
Heute ist mit der Version 0.7 die nächste Beta-Version von tinylog erschienen. Diese kann ab sofort heruntergeladen werden. Feedback (positives und negatives) ist weiterhin erwünscht!
Änderungen:
- Schreib-Operationen können in einem separaten Thread ausgeführt werden
- Policies für Rotations-Strategies (z.B. täglich um Mitternacht)
- Labellers zur Generierung von Dateinamen von Backups (Durchnummerieren oder Timestamp)
- Eigene Writers, Policies und Labellers können als Service registriert werden
- Schnittstelle für alternative Logger APIs
- Refactoring der Package-Struktur
tinylog 0.6 veröffentlicht
9. August 2012
Nach einem halben Jahr intensiver Entwicklung ist heute mit der Version 0.6 die erste öffentliche Beta von tinylog erschienen. Diese kann ab sofort heruntergeladen werden. Ich freue mich immer über Rückmeldungen und neue Ideen!
Webseite geht online
30. Mai 2012
Seit heute ist die tinylog-Webseite online. Die erste öffentliche Beta von tinylog wird die Version 0.6 sein und noch diesen Sommer erscheinen.