Penna: A modern SLF4J backend
hkupty
Hi folks!
I'm excited to be here sharing Penna. I hope that, by the end of this post, you'll feel as thrilled as I am with this project and the possibilities it brings to modern logging in the JVM.
What is Penna?
Penna is a native SLF4J implementation that aims to solve a specific use case: Writing JSON logs to stdout.
Although specific, this is extremely common and many apps opt to do so to reap the benefits of structured logging and to leverage docker and kubernetes capabilities.
Why another SLF4J backend?
Penna is designed to fulfill three specific requirements: to deliver structured logs, with lightweight config, not getting in your way.
This means that it won't require you to set up any sort of XML configuration, nor figure out the best configuration strategy for it. It will just work.
Out of the box, Penna comes with sane defaults so most of the time you won't need any extra configuration.
Also, Penna really doesn't want to get in your way, so it is very, very performant, to avoid GC pressure when your app is under load and to ensure you'll be able to sustain throughput when your app is bombarded with requests.
That sounds fantastic! What's the current state?
As of this post, Penna is in its 0.7.x version series and soon enough will be deemed robust to be production ready. I've been focusing on ensuring correctness and multi-thread robustness. If this post caught your attention, consider subscribing to support the project.
For more information, check the project website!