Desidero eseguire il retrofit di slf4j con Logback in un'applicazione legacy. La cosa buona è che l'applicazione legacy ha il proprio framework di registrazione. Quindi tutto ciò che dovevo fare è modificare il framework di registrazione per accedere a slf4j anziché a log4j.Wrapping dell'API slf4j
Ha funzionato come un sogno. Ero felice, fino a quando ho notato la posizione Logback registrato per ogni evento del registro:
Logger.java:...
Yikes! Questo non avrebbe aiutato molto i miei colleghi sviluppatori quando cercavo di capire da dove proveniva un evento del registro.
Come posso dire a Logback di apparire alcuni livelli in cima allo stack per la posizione effettiva da registrare?
La classe Logger è una classe di utilità con metodi come questo:
public static void debug(String clazz, String message) {
org.slf4j.Logger logger = LoggerFactory.getLogger(clazz);
logger.debug(message);
}
domanda simile: http: // stackoverflow.com/questions/1486233/java-logging-show-the-source-line-number-of-the-caller-not-the-logging-helper-m – Thilo
ha funzionato quando stava usando log4j? Penso che da quando hai aggiornato una classe di registrazione esistente, non hai aggiunto un frame aggiuntivo allo stack di chiamate, quindi la versione di log4j avrebbe dovuto presentare lo stesso problema. – Thilo
log4j espone un metodo di log nella sua API pubblica che sembra un frame in più nello stack mentre slf4j non lo fa. Quindi sì, ha funzionato con log4j. –