In the documentation for slf4j it says that the binding happens during complie time:
\"SLF4J does not rely on any special class loader machinery. In fact, each SLF4J bi
Technically, there's no magic "binding" happening at compile time. The "binding" happened when the SLF4J developers created libraries to handle the most popular Java logging frameworks.
When the docs say that the "binding is hardwired at compile time," it means the SLF4J developers have created a targeted library for a particular Java logging framework. SLF4J has libraries dedicated to Java Logging, Jakarta Commons Logging, Log4J, and console output. You will need to include only one of these libraries at runtime in order for SLF4J to successfully create log messages.
For more information on how SLF4J works: A more visual way to understand SLF4J.