Как правильно регистрировать заполненное сообщение и трассировку стека исключения?
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
Я хотел бы сделать вывод, похожий на этот:
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j версия 1.6.1
{}
больше, дело вкуса ...
toString()
Метод аргументов может быть дорогим. С этим синтаксисом передается только ссылка на каждый объект, и toString()
метод вызывается только в том случае, если конкретное сообщение действительно регистрируется. Объекты, на которые ссылаются при info()
вызове журнала, не будут вызывать свой toString()
метод, если уровень журнала равен WARN
или выше. {}
Синтаксис напоминает пользователям , что это не String.format()
-как операция, то есть они должны передавать объекты , а не строковые представления их.