What is the difference between Log4j, SLF4J and Logback?

JavaLoggingLog4jSlf4j

Java Problem Overview


I am little bit confused by these three logger libraries. It seems like that they can do the similar thing in Java logging...

Java Solutions


Solution 1 - Java

Check out their home pages:

SLF4J - The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction1 for various logging frameworks (e.g. java.util.logging, logback, log4j) allowing the end user to plug in the desired logging framework at deployment time.

1) It is not itself a logging library, but a generic interface to one of many logging libraries.

Log4j 1.2 - Welcome to Apache log4j, a logging library for Java.

Logback - Logback is intended as a successor to the popular log4j project, picking up where log4j leaves off.

Log4j 2 - Apache Log4j 2 is an upgrade to Log4j that provides significant improvements over its predecessor, Log4j 1.x, and provides many of the improvements available in Logback while fixing some inherent problems in Logback's architecture.

At least, that's what they all say of themselves.

Solution 2 - Java

This link : https://medium.com/@krishankantsinghal/logback-slf4j-log4j2-understanding-them-and-learn-how-to-use-d33deedd0c46

Explains the differences in detail.

Quoting from there

Slf4j > So Basically Simple Logging Facade for Java serves as a simple facade or abstraction for various logging frameworks allowing the end user to plug in the desired logging framework at deployment time.

log4j2

> Log4j,Logback and java.util.Logger are logging libraries which actually write the logs and have their own pros and cons. As industry standards are Log4j2 and logback

I would recommend going through the blog. It provides all the glory details how both are used with adapter.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEv3rlastingView Question on Stackoverflow
Solution 1 - JavaAndreasView Answer on Stackoverflow
Solution 2 - JavaAvishek BhattacharyaView Answer on Stackoverflow