News
P2 repository for tinylog 1.3.6
May 4th, 2020
Good news for Eclipse RCP and plug-in developers! There is now an official P2 repository for tinylog 1.3.6: http://tinylog.org/p2-repository/1.3.6/
Update for tinylog 1.3
February 11th, 2019
tinylog 1.3.6 fixes a ConcurrentModificationException that can occur, if system properties change while loading the configuration. Thanks to trebouillon for finding this issue.
Enhanced support for alternative JVMs
May 7th, 2018
In the new version 1.3.5, tinylog does no longer require that the system properties "java.runtime.name" and "os.name" are set. Thus tinylog runs even on alternative legacy JVMs like JamVM.
New update for tinylog 1.3
February 23rd, 2018
tinylog 1.3.4 fixes a bug in the File-Writer that prevented a reliable resolving of environment variables in the file name. Many thanks to f4lco for the pull request.
Update for tinylog 1.3
February 20th, 2018
tinylog 1.3.3 fixes a bug that prevented the rolling file writer from deleting obsolete old backup log files on startup.
Benchmark updated
January 25th, 2018
In the benchmark, all logging frameworks have been updated to the latest version. tinylog 1.3.2 is a few milliseconds faster than the previous version 1.2. Log4j 2.10 has become much slower (up to 2 seconds) compared to version 2.8 and sometimes loses a few log entries. Ideas and suggestions on how to optimize the configuration are welcome.
Update for tinylog 1.3
December 18th, 2017
tinylog 1.3.2 fixes the OSGi bundle declarations to solve resolving problems with Apache Felix and other OSGi environments.
Colorful logging with tinylog
November 28th, 2017
Tobias Mayer has published a new writer for tinylog on GitHub. With his colored console writer, log entries can be easily colored in the bash console. Colors can even be configured depending on the logging level.
Final tinylog 1.3 is released
November 14th, 2017
tinylog 1.3 is released and ready for download. The final version contains all features and changes from both release candidates. During the release, a bug related to Java 9.0.1 has occurred. The bug has been fixed. Therefore the jump to version 1.3.1 is made immediately.
Second release candidate of tinylog 1.3 is released
October 7th, 2017
The second release candidate of tinylog 1.3 is released and can be downloaded. tinylog 1.3 is feature complete now.
Changes:
- Logging messages and arguments can be provided as lambda expression. Lambda expressions can be used for messages and arguments, which are expensive to compute, as they will be only evaluated if the log entry is really output.
- Improve performance for JDBC writer by reusing SQL statements
- Make output stream configurable for console writer. By default, warnings and errors are written to the error stream and all other logging levels to the default output stream. Now it's possible for example to output all kind of log entries to the default output stream or error stream.
First release candidate of tinylog 1.3 is released
September 25th, 2017
The first release candidate of tinylog 1.3 is released and can be downloaded.The focus of the new release is on support for Java 9.
Changes:
- Use the new standard API for receiving process ID and stack trace elements on Java 9
- Support microseconds and nanoseconds for timestamps on Java 9
- Drop support for Java 5 (tinylog 1.3 requires at least Java 6)
Benchmark: tinylog 1.1 vs 1.2
March 15th, 2017
The tinylog project contains benchmarks to prevent performance issues for new releases. Both benchmarks have been executes with tinylog 1.1 and 1.2 on the same machine.
Maximum logging performance (creating log entries in a loop one million times)
tinylog 1.2 with writing thread |
|
---|---|
tinylog 1.1 with writing thread |
Influence on compute-intensive application (calculating all prime numbers from 2 to 10,000,000)
tinylog 1.2 with writing thread |
|
---|---|
tinylog 1.1 with writing thread |
All parameters and the method of measurement are documented on the benchmark page.
Final tinylog 1.2 is released
February 24th, 2017
The final version of tinylog 1.2 is released and can be downloaded. It is identical to the last release candidate as no further bugs have been reported.
New features:
- Full support of Android including a logcat writer
- New alternative JARs for redirecting log entries to logging system of application servers
- Resolve Unix-like placeholders with environment variables in paths such as "${home}"
- Support loading configurations from any input stream
- Support JavaEE DataSources in JDBC writer
- Auto reconnecting option for JDBC writer
- Configurations can be defined as URL to load them from network or web
- Support for choice format in log messages
- Support for custom number format patterns in log messages
Bug fixes:
- Fixed deleting old backup files in rolling file writer if startup policy is used together with timestamp or process ID labeler.
- Fixed NullPointerException when loading tinylog with BootstrapClassLoader (thanks to cristianspinetta)
tinylog 1.2-rc3 is released
February 8th, 2017
Fixed NullPointerException when loading tinylog with BootstrapClassLoader (thanks to cristianspinetta).
tinylog 1.2-rc2 is released
January 23rd, 2017
Fixed deleting old backup files in rolling file writer if startup policy is used together with timestamp or process ID labeler.
tinylog 1.2-rc1 is released
January 12th, 2017
The first release candidate of tinylog 1.2 is released and can be downloaded. Thereby tinylog 1.2 is feature complete. From now on, there will only bug fixes until the major release. As with tinylog 1.0 and 1.1, the first release candidate without any reported bugs will be released unmodified as final tinylog 1.2.
Changes:
- Configurations can be defined as URL to load them from network or web
- Support for choice format in log messages
- Support for custom number formatting in log messages
First beta of tinylog 1.2 is released
October 13th, 2016
The first beta version of tinylog 1.2 is released and available for download. Feedback including bug reports and feature requests is welcome!
New features:
- Full support of Android including a logcat writer
- New alternative JARs for redirecting log entries to logging system of application servers
- Resolve Unix-like placeholders with environment variables like "${home}" in paths
- Support loading configurations from any input stream
- Support JavaEE DataSources in JDBC writer
- Auto reconnecting option for JDBC writer
Android support is ready for testing
August 17th, 2016
The second alpha of tinylog 1.2 supports Android and has an integrated writer for forwarding log entries to Android's native logging system (alias logcat). Testing and feedback are welcome!
Benchmark: tinylog 1.0 vs 1.1
April 14th, 2016
Maximum logging performance (creating log entries in a loop one million times)
tinylog 1.1 with writing thread |
|
---|---|
tinylog 1.0 with writing thread |
Influence on compute-intensive application (calculating all prime numbers from 2 to 10,000,000)
tinylog 1.1 with writing thread |
|
---|---|
tinylog 1.0 with writing thread |
All parameters and the method of measurement are documented on the benchmark page.
Final tinylog 1.1 is released
April 5th, 2016
The final version of tinylog 1.1 is released and can be downloaded. As no bugs were reported for the fourth release candidate, it could be published as planned as final tinylog 1.1.
New features:
- Mapped logging context (MDC) for thread-based enrichment of log entries
- Caching of rendered dates and times
- New indentation option for placeholders in logging format patterns
- If global logging level isn't set, use automatically the lowest defined logging level from writers
- Binding for Apache Commons Logging (JCL)
- Extended Apache Log4j 1.x logging API
- Append mode for SharedFileWriter und FileWriter
tinylog 1.1-rc3 and update for tinylog 1.0
March 27th, 2016
Fixed a NullPointerException if the configured thread to be observed doesn't exist
tinylog 1.1-rc3 is released
March 21st, 2016
Output the stack trace of exceptions if passed as last parameter via the SLF4J API
tinylog 1.1-rc2 is released
February 15th, 2016
Small fix for using JDBC writer with logging context
tinylog 1.1-rc1 is released
January 24th, 2016
The first release candidate of tinylog 1.1 is released and can be downloaded. Thereby tinylog 1.1 is feature complete. From now on, there will only bug fixes until the major release. As with tinylog 1.0, the first release candidate without any reported bugs will be released unmodified as final tinylog 1.1.
Changes:
- Configurable append mode for SharedeFileWriter and FileWriter
- Improved indentation of stack traces for custom defined number of spaces via "indent"
- Fix for Mapped Diagnostic Context (MDC) in conjunction with SLF4J
Update for tinylog 1.0
January 18th, 2016
tinylog 1.0.3 fixes using Mapped Diagnostic Context (MDC) in conjunction with SLF4J.
Third beta of tinylog 1.1 is released
December 27th, 2015
The third beta version of tinylog 1.1 provide an optional binding for Apache Commons Logging (JCL). Log entries from frameworks or libraries, which use Apache Commons Logging, can be output via tinylog if the new JCL binding is added to the classpath. The Spring Framework uses Apache Commons Logging for example. The beta version of tinylog and the new JCL binding are available for download.
Second beta of tinylog 1.1 is released
December 20th, 2015
The second beta version of tinylog 1.1 is released and available for download.
Changes:
- Strip anonymous part from class names
- Fixes in file writer and shared file writer for Linux
First beta of tinylog 1.1 is released
December 6th, 2015
Today the first beta version of tinylog 1.1 is released and is available for download. Feedback (positive and negative) is welcome!
New features:
- Thread-based Mapped Diagnostic Context (including SLF4J binding and Log4j facade)
- Indentation for placeholders in logging format patterns
- Caching of rendered timestamps
- Support resource bundles in Log4j facade
- Support parameterized logging in Log4j facade
Update for tinylog 1.0
October 2nd, 2015
tinylog 1.0.2 can be configured again by system properties without necessarily having a tinylog.properties file in the default package.
Update for tinylog 1.0
August 1st, 2015
In tinylog 1.0.1 all file based writers will automatically make nonexistent directories instead of printing an error message if a log file path doesn't exist yet.
Final tinylog 1.0 is released
March 30th, 2015
The final version of tinylog 1.0 is released and can be downloaded. For stability reasons, it was planned to publish the first release candidate without any reported bugs unmodified as final major release. As no bugs were reported for the third release candidate, it could be published as final tinylog 1.0.
New benchmark is online
February 16th, 2015
The benchmark has been completely rewritten. In addition to the maximum logging performance, the influence of logging frameworks on compute-intensive applications has been tested, too. tinylog 1.0 will be published soon and the final tinylog version has been already used for the new benchmark.
tinylog 1.0-rc3 is released
December 19th, 2014
The third release candidate of tinylog 1.0 is released and can be downloaded. The only bug fix concerns only the OSGi bundles.
- Fixed version numbering scheme for Apache Felix
tinylog 1.0-rc2 is released
December 8th, 2014
The second release candidate of tinylog 1.0 is released and can be downloaded.
- Performance fix for log4j facade
- SLF4J binding for tinylog available
tinylog 1.0-rc1 is released
November 17th, 2014
The first release candidate of tinylog 1.0 is released and can be downloaded. Thereby tinylog is feature complete and the API is declared as stable. From now on, there will only bug fixes until the major release.
- Writing of log entries has been sped up
- New syntax of parameters in logging messages:
Logger.info("Divide {} by {}", a, b)
. This change is incompatible with previous beta versions and such logging messages have to be migrated for tinylog 1.0.
Documentation updated
July 13th, 2014
The documentation has been revised and restructured substantially. Especially the new features and changes of tinylog 0.9 are descripted in more detail now.
Update for tinylog 0.9
June 5th, 2014
The creation of a JdbcWriter instance for the Fluent API has been fixed in tinylog 0.9.1.
tinylog 0.9 is released
June 3rd, 2014
The version 0.9 of tinylog is ready and can be downloaded. This is the last beta version and all the essential features are implemented. The next version will be the first release candidate and contain only minor changes.
New features:
- New placeholders "{class_name}", "{package}", "{pid}" (process ID) and "{thread_id}" for logging format pattern
- New syntax for setting logging levels for individual packages (e.g. tinylog.level@com.example = trace)
- Multiple instances of an application can simultaneously write to the same log file
- Support of multiple processes by FileWriter and RollingFileWriter
- ProcessIdLabeler for RollingFileWriter to create an own log file for each instance of an application by using the process ID
- Optionally buffered writing
- Support of custom logging levels for specific classes
- More detailed output of errors and misconfigurations
- Logging writer for SQL databases
- New policy to limit the the number of log entries per file
- Support for multiple logging writers (e.g. for simultaneous output to the console and to a log file)
Java 8:
- tinylog uses the new internal API of Java 8 as well, if this will be much faster or saves memory
Update for tinylog 0.8
December 4th, 2013
In tinylog 0.8.1 some bugs have been fixed. It is an intermediate step towards version 0.9, which will have some new big features again. tinylog 0.8.1 is now available for download.
New features:
- Optional library log4j-facade with a Log4j 1.x compatible logging API
- Non-existent directories in log file paths are created automatically
Bug fixes:
- Compatibility with Java 5
- Creating of log files with timestamps failed
- Logging levels of packages was ignored if the logging level is lower than the global logging level of the logger
New documentation is online
June 2nd, 2013
The new documentation is much more comprehensive than the old user manual and is now on the current state of tinylog 0.8. Due to the size the new documentation is divided into five chapters and discusses also the extensibility of tinylog, e.g. how to create an own writer.
tinylog 0.8 is released
March 7th, 2013
Today the second to last beta version of tinylog is released. The new version 0.8 is now available for download.
New features:
- Maven artifact
- OSGi bundle (e.g. for Eclipse RCP applications)
- Support for application servers such as Glassfish
- Separated logger and configuration (two different classes)
- Fluent API for configuration
- New configurations can be set atomically (multiple changes become simultaneously active)
- Observe properties files and reload the configuration automatically
- Extended the logging API for other logging frameworks (necessary for the planned log4j facade)
- Logging methods for plain Java objects
- Complete rewriting of tests (now 155 tests with a code coverage of 94 %)
Performance:
- Use the fast method sun.reflect.Reflection.getCallerClass() to get the class name in Sun/Oracle VMs
- Faster creating of log entries, if no parameters are passed
Bug fixes:
- Logging writers get the logging level of the logger instead of the logging entry
- Labellers are ignored if defined by property
Roadmap is online
January 12th, 2013
The roadmap shows the current state of development and all steps to the version 1.0. All milestones will be released as soon as they are done, sufficiently tested and completely documented. For the benefit of stability I don't give fixed release dates.
Update for tinylog 0.7
August 20th, 2012
In tinylog 0.6 and 0.7 was a performance bug that could lead to very slowly logging for very deeply nested methods. This is now fixed with tinylog 0.7.1. Thank you for reporting the problem!
tinylog 0.7 is released
August 20th, 2012
Today the next beta version of tinylog is released. The new version 0.7 is now available for download. Feedback (positive and negative) is still welcome!
Changelog:
- IO operations can be executed in a separate thread
- Policies for rollover strategies (e.g. daily at midnight)
- Labellers for generating filenames for backups (counting or timestamp)
- Own writers, policies and labellers can be registered as service
- Interface for alternative logger APIs
- Refactoring of the package structure
tinylog 0.6 is released
August 9th, 2012
After half a year of intensive development, tinylog 0.6 is today officially released as the first public beta. The JAR file and the source code are ready for download. New ideas and feedback are always welcome!
Website goes live
May 30th, 2012
Today the tinylog website went online. The first public beta of tinylog is version 0.6 and will be released as soon as this summer.