Qual è l'approccio corretto per registrare sia un messaggio popolato sia una traccia dello stack dell'eccezione?
logger.error(
"\ncontext info one two three: {} {} {}\n",
new Object[] {"1", "2", "3"},
new Exception("something went wrong"));
Vorrei produrre un output simile a questo:
context info one two three: 1 2 3
java.lang.Exception: something went wrong
stacktrace 0
stacktrace 1
stacktrace ...
slf4j versione 1.6.1
{}
più, la questione del gusto ...
toString()
metodo degli argomenti potrebbe essere costoso. Con questa sintassi, viene passato solo un riferimento a ciascun oggetto e il toString()
metodo viene chiamato solo se il particolare messaggio viene effettivamente registrato. Gli oggetti a cui fa riferimento una info()
chiamata di registro non avranno il loro toString()
metodo chiamato se il livello di registro è WARN
o superiore. La {}
sintassi ricorda agli utenti che questa non è un'operazione String.format()
analoga, ovvero che devono passare oggetti anziché rappresentazioni di stringhe.