Log4j, Log4j2, Logback, SLF4J 간단 용어정리

들어가기

그냥 맥락정도만 파악을 위해 후려친 용어정리이다.


log4j, logj42, logback 이란 무엇인가?

3개다 Java기반 로깅 유틸리이다. 일단 간단히 시간 순서로 보면 Log4j -> Logback -> Log4j2 순서이다. 즉 Log4j2가 가장 진화?된 로그 유틸리티이다. Logback, Log4j2 둘다 Log4j를 기반으로 하고 있어서 설정방법, 사용법 등이 비슷하다.(정확하게 같지는 않다.) Logback은 약간 Log4j의 서자 느낌, Log4j2는 말그대로 Log4j의 2버전으로 적자의 느낌이 강하다.


SLF4J(Simple Logging Facade for Java) 란?

java 진영에 java.util.logging, Logback, Log4j와 같이 다양한 Loging framework가 있다. 문제는 이 각각 Loging framework의 사용법이 다르다는 것이다.

SLF4J는 java 진영의 Loging framwork들의 fascede(추상체) 역할을 한다. 인터페이스와 비슷한 역할을 하여, 사용중인 Loging framework 가 변경되더라도 Java 소스코드의 변경을 방지해준다.

Spring MVC lagacy 프로젝트를 생성하면, 기본적으로 SLF4J + Log4j 구조로 되어있다.

Spring MVC lagacy 기본 로깅 라이브러리


마무리

아무래도 최신 로깅유틸인 Log4j2 를 사용하는 것이 좋아보인다. Log4j는 java 버전에 올라갈수록 호환이 안될 가능성이 있다는 풍문이 있다.