SLF4J vs LOG4J Which one to prefer?

  • I have seen this question but does not answer me.

    It have a brand new project. I have almost always used Log4J but now I am seeing SLF4J making some waves. What is it that Log4J could not do and we needed SLF4J? Is it really an upgrade. Should I use it in a project which will also have an API for other to extend upon?

  • SLF4J is basically an abstraction layer. It is not a logging implementation. It means that if you're writing a library and you use SLF4J, you can give that library to someone else to use and they can choose which logging implementation to use with SLF4J e.g. log4j or the Java logging API. It helps prevent projects from being dependent on lots of logging APIs just because they use libraries that are dependent on them.

    So, to summarise: SLF4J does not replace log4j, they work together. It removes the dependency on log4j from your library/app.

    Take a look here:, or even here: (Apache Commons Logging is similar to SLF4J) for more info on this concept.

License under CC-BY-SA with attribution

Content dated before 6/26/2020 9:53 AM