What we have to do is to be forever curiously
testing new opinions and courting new impressions

우리가 해야 할 일은 끊임없이 호기심을 갖고
새로운 생각을 시험해보고 새로운 인상을 받는 것

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의 모든 로깅 프레임워크에 대한 추상화

application

상황과 필요에 따라 Log4j나 SLF4j를 선택해서 사용

SLF4j 사용 시, 단일 종속성을 선택하지 않고 배포 시 필요한 모든 로깅 프레임워크로 마이그레이션 가능


Log4j2를 사용해야 하는 이유

Log4j2에는 log4j-to-slf4j 브리지 모듈 포함

Log4j2 API로 코딩된 모든 애플리케이션은 slf4j로 언제든지 구현 전환 가능

log4j2-to-slf4j

Log4j2 장점

  1. 문자열 대신 모든 객체 기록
  2. 지연 로깅을 위한 람다
  3. 가변인수 생성 또는 문자열 생성을 지양(가비지 프리)
  4. CloseableThreadContext는 작업을 마치면 자동으로 MDC에서 항목을 제거
  5. 애플리케이션은 Log4j2에 종속되지 않고 API의 기능 사용


댓글남기기