2012-05-08 8 views
29

Estoy usando slf4j para iniciar sesión en mi aplicación. Obtengo el propósito de slf4j. Me gustaría saber cómo averiguar qué logging-library slf4j está vinculando actualmente. Tengo log4j en mis bibliotecas referenciadas. Supongo que slf4j se ha vinculado a log4j.¿Cómo encontrar a qué biblioteca se ha unido slf4j?

Lo que me gustaría saber es, ¿hay alguna forma de confirmar explícitamente este enlace?

Respuesta

39

Haz lo SLF4J hace descubrir la unión:

final StaticLoggerBinder binder = StaticLoggerBinder.getSingleton(); 

Ahora se puede tratar de averiguar cuál es la implementación real en mi caso:

System.out.println(binder.getLoggerFactory()); 
System.out.println(binder.getLoggerFactoryClassStr()); 

Esta impresora:

ch.qos.logback.classic.LoggerContext[default] 
ch.qos.logback.classic.selector.DefaultContextSelector 
+0

¿Cómo puedo encontrar el archivo jar del que proviene el registrador (logback en el ejemplo anterior)? – Jason

+0

@ Jason ¿qué le parece preguntar al cargador de clases? –

+0

¿Cómo le pregunto al cargador de clases? – Jason

0

Fácil. Ponga un punto de interrupción en ... digamos ... LOG.info (...). Una vez que el depurador se detenga allí, entre en ... y viola ... se encontrará en el código del registrador real ... diga log4j o logback ... lo que sea.

Cuestiones relacionadas