Hi all,

For your information, in addition to being efficient and clean, SLF4J's fluent API also allows setting the message via a supplier (closure).


See

https://www.slf4j.org/manual.html#fluent

and also

https://www.slf4j.org/apidocs/org/slf4j/spi/LoggingEventBuilder.html

On 02/02/2025 11:35, Joachim Durchholz via slf4j-user wrote:
An additional thought:

Modern JVMs are pretty efficient at building closures.
Log4j2 (not the old log4j version 1) is an alternative where you can replace

   logger.debug("foo is: " + foo)

with

   logger.debug(() -> "foo is: " + foo)

This has the same avoid-constructing-strings logic as

   logger.debug("foo is: {}", foo)

but you don't need to refactor anything.

The downside is that forgetting to create the closure will make logging slow, so in the end, you'll likely fall back to the same make-sure- everything-is-mass-refactored approach as before, so the overall advantage isn't big. However, you'll get low-hanging fruits faster, at the expense of having to try out a different logging framework.

Which means I won't recommend anything, I'm just presenting more choices in the hopes that one of them matches your situation better.

Regards,
Jo
_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
https://mailman.qos.ch/cgi-bin/mailman/listinfo/slf4j-user

--
Ceki Gülcü

Sponsoring SLF4J/logback/reload4j at https://github.com/sponsors/qos-ch

_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
https://mailman.qos.ch/cgi-bin/mailman/listinfo/slf4j-user

Reply via email to