Log4j2 vs Slf4j

bbbbbhyun·2025년 2월 13일

@Log4j2

  • Apache Log4j 2를 기반으로 한 로깅을 제공
  • 성능이 뛰어나고, 비동기 로깅을 지원하여 대규모 애플리케이션에서 유용
  • log4j2.xml 또는 log4j2.properties 파일을 통해 상세한 설정이 가능
import lombok.extern.log4j2.Log4j2;

@Log4j2
public class Log4j2Example {
    public void logTest() {
        log.info("Log4j2 로깅 예제");
    }
}

@Slf4j

  • Simple Logging Facade for Java (SLF4J) 기반의 로깅을 제공
  • SLF4J는 특정 로깅 구현체(Logback, Log4j2 등)를 선택하여 사용할 수 있는 인터페이스 역할
  • 유연성이 높으며, logback.xml 또는 log4j2.xml을 사용하여 로깅 설정
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Slf4jExample {
    public void logTest() {
        log.info("Slf4j 로깅 예제");
    }
}

차이점 정리

항목 @Log4j2 @Slf4j
기반 프레임워크 Log4j 2 Slf4j (Logback, Log4j2 등 선택 가능)
성능 더 빠르고 비동기 지원 프레임워크에 따라 다름
유연성 Log4j2 전용 다양한 로깅 프레임워크와 연동 가능
설정 파일 log4j2.xml logback.xml, log4j2.xml 등등

어떤 걸 써야 할까?

  • Log4j2를 직접 사용할 예정이면 @Log4j2를 사용하면 성능과 기능을 최대로 활용 가능
  • SLF4J 인터페이스를 유지하면서 다양한 로깅 프레임워크(Logback, Log4j2 등)를 유연하게 선택하고 싶다면 @Slf4j를 사용 권장
profile
BackEnd developer

0개의 댓글