
Hello Russ, On 24/01/2025 19:46, slf4j developers list via slf4j-dev wrote: Thank you for your comments.
With this method or any similar method, public void info(String format, Object... arguments) { if (isInfoEnabled()) { handleArgArrayCall(Level.INFO, null, format, arguments); } } If the number of objects in 'arguments' is more than the number of placeholders, {}, the extra argument objects are not logged. Is there a reason for that?
The reason is that catering for this eventuality would be relatively complicated. More importantly, I think that it is not SLF4J's responsibility to fix every possible error that could be made by the programmer.
For example public void setTemperature(Integer temperature) { oldT = t; t = temperature; //Sent three parameters log with two placeholders //Output "Temperature set to 90. Old value was null." The word extra is not printed logger.info("Temperature set to {}. Old value was {}.", t, oldT, "extra"); if(temperature.intValue() > 50) { logger.info("Temperature has risen above 50 degrees."); } }
The fluent API allows adding key value pairs which should avoid this pitfall. Best regards, -- Ceki Gülcü Sponsoring SLF4J/logback/reload4j at https://github.com/sponsors/qos-ch