Який правильний підхід до журналу як заселеного повідомлення, так і стека сліду виключення?
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()
-як операція, тобто вони повинні передавати об'єкти , а не рядкові представлення їх.