Difference between Simple Logging Facade for Java and Apache Commons Logging

What is the difference between Simple Logging Facade for Java and Apache Commons Logging?


From the SLF4J FAQ:

SLF4J is conceptually very similar to JCL. As such, it can be thought of as yet another logging facade. However, SLF4J is much simpler in design and arguably more robust. In a nutshell, SLF4J avoid the class loader issues that plague JCL.

Do a google for "JCL classloader issues" for more on this...

While SLF4J can be used as a facade over libraries like Log4j, or JUL, it can also be used as an API to implement native logging libraries, like Logback did. A native SLF4J library won't need adapter glue in the middle like the facade for Log4j or JUL does, so it should be more efficient as well.

Logging Facade|Framework|AbstractionLayer (facade-The word comes from the French language, literally meaning "frontage" or "face".)

Definition- Logging Facade Logging Facade is a abstraction for various logging frameworks, e.g. java.util.logging, log4j and logback, allowing the end user to plug in the desired logging framework at deployment time.

Simple Logging Facade(SLF4J) is a abstract logging framework like JCL(jakarta-commons-logging). And JCL is also called as Apache Commons Logging

Also note that commons-io(apache io -utilities) is different from commons-logging(logging facade)

Need Your Help