The old and good known log4j seems to be a standard framework for logging in Java applications, despite some serious disadvantages like boilerplate configuration, lack of good documentation and overcomplicated architecture.
The authors of log4j dispatched on another journey and created its successor - logback, which addresses old problems and adds a lot of enhancements.
Configuration is now more concise (it can be even written in groovy) and well documented.
slf4j api is used natively, so the implementation can be changed easily.
The issue with many instances of RollingFileAppender writing to the same file was also resolved.
In order to add logback to your project you need to add two dependencies:
You're basically ready to go, because default configuration is applied, when no other is found.
When following class is run:
it will print something like this:
But the coolest feature is automatic reloading of configuration file.
When we add this example configuration (saved as logback.xml) to the classpath:
we can change it on the fly and logback will automatically apply changes (at configured interval, in our case 5 seconds) without a need to restart the application.