Ho utilizzato SLF4j come framework di registrazione, supportato da log4j. Il mio problema è che sto cercando un modo per modificare il livello di registrazione per il mio logger in fase di runtime.Come modificare il livello slf4j in fase di esecuzione?
Capisco che slf4j non lo consenta direttamente tramite la propria API e, quindi, devo accedere direttamente al provider di registrazione. Personalmente, trovo che questa sia un'enorme mancanza di slf4j. Quindi ora la mia domanda è come posso determinare in modo programmatico tramite slf4j quale fornitore sto usando? Lo scopo principale dell'uso di slf4j è quello di diventare indipendenti dal punto di vista del fornitore: puoi facilmente passare dal tuo sistema di registrazione preferito senza dover ricodificare nulla. Ma ora, se devo fare chiamate dirette a log4j, sto perdendo questa capacità.
Per lo meno, vorrei essere in grado di determinare se sto utilizzando log4j come provider e in tal caso, quindi consentire all'utente di cambiare i livelli di registro.
Se faccio LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)
, il risultato è un esempio di org.slf4j.impl.Log4jLoggerAdapter
e nemmeno org.apache.log4j.Logger
(come avrei sperato/attesa).
C'è un modo per scoprirlo?
Grazie, Eric
Vedere: [Come trovare la libreria su cui si è associata la libreria slf4j?] (Http://stackoverflow.com/questions/10505418) –
Grazie. Non sono sicuro del motivo per cui l'ho perso nella mia ricerca originale. –