Log4j2 vs Slf4j
Log4j2 vs Slf4j
- Log4j2
- SLF4j(Simple Logging Facade For Java)
- Log4j2를 사용해야 하는 이유
Log4j2
Java로 작성된 안정적이고 빠르며 유연한 로깅 프레임워크 API
런타임 시 외부 구성파일을 통해 고도로 구성 가능
로깅 프로세스를 우선 순위로 보고 로깅 정보를 데이터베이스, 파일, 콘솔, UNIX Syslog 등과 같은 다양한 대상으로 보내는 기능 제공
Log4j가 JNDI와 LDAP를 이용한 취약점이 발견되어, Log4j2 등장
SLF4j(Simple Logging Facade For Java)
Log4j와 달리 로깅 프레임워크의 구현이 아니며, Log4j와 유사한 Java의 모든 로깅 프레임워크에 대한 추상화
상황과 필요에 따라 Log4j나 SLF4j를 선택해서 사용
SLF4j 사용 시, 단일 종속성을 선택하지 않고 배포 시 필요한 모든 로깅 프레임워크로 마이그레이션 가능
Log4j2를 사용해야 하는 이유
Log4j2에는 log4j-to-slf4j 브리지 모듈 포함
Log4j2 API로 코딩된 모든 애플리케이션은 slf4j로 언제든지 구현 전환 가능
Log4j2 장점
- 문자열 대신 모든 객체 기록
- 지연 로깅을 위한 람다
- 가변인수 생성 또는 문자열 생성을 지양(가비지 프리)
- CloseableThreadContext는 작업을 마치면 자동으로 MDC에서 항목을 제거
- 애플리케이션은 Log4j2에 종속되지 않고 API의 기능 사용
댓글남기기