Search code examples
javalogginglog4jslf4j

How to find which library slf4j has bound itself to?


I am using slf4j for logging in my application. I get the purpose of slf4j. I would like to know how to find out which logging-library slf4j is currently binding to. I have log4j in my referenced libraries. I am assuming that slf4j has bound itself to log4j.

What I would like to know is, is there any way to explicitly confirm this binding?


Solution

  • Just do what SLF4J does to discover the binding:

    final StaticLoggerBinder binder = StaticLoggerBinder.getSingleton();
    

    Now you can try to find out what is the actual implementation in my case:

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

    This prints:

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