@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를 사용 권장