Начиная с SLF4J 1.6.0, при наличии нескольких параметров и если последний аргумент в операторе ведения журнала является исключением, SLF4J будет предполагать, что пользователь хочет, чтобы последний аргумент рассматривался как исключение, а не как простойпараметр.См. Также соответствующую запись FAQ .
Итак, запись (в SLF4J версии 1.7.x и более поздних)
logger.error("one two three: {} {} {}", "a", "b",
"c", new Exception("something went wrong"));
или запись (в SLF4J версии 1.6.x)
logger.error("one two three: {} {} {}", new Object[] {"a", "b",
"c", new Exception("something went wrong")});
даст
one two three: a b c
java.lang.Exception: something went wrong
at Example.main(Example.java:13)
at java.lang.reflect.Method.invoke(Method.java:597)
at ...
Точный вывод будет зависеть от базовой структуры (например, logback, log4j и т. Д.), А также от конфигурации базовой структуры.Однако, если последний параметр является исключением, он будет интерпретироваться как таковой независимо от базовой структуры.