본문 바로가기

Backend/Spring

[Slf4j] Slf4j란?

Slf4j

Slf4j는 다양한 Logging Framework(logging, logback, log4j)의 추상화를 제공하며 컴파일 시, 하나의 Logging Framework와 바인딩 해준다.


* 로그 레벨 :
TRACE > DEBUG > INFO > WARN > ERROR

장점
  • 다양한 Logging Framework를 라이브러리만 추가해서 바인딩할 수 있다. -> Logging Library 변경 시 로그 엔진을 쉽게 변경할 수 있다.
  • String 연산의 편의성
log.info("log message : " + name);
  • 다음과 같이 코드를 작성하게 되면 String 연산 후 Logging Level을 확인하여 출력 여부를 확인한다. -> 불필요한 CPU 연산 사용
log.info("log message : {}", name);
  • Slf4j를 사용하면 다음과 같은 코드를 작성할 수 있어 Logging Level을 확인 후 출력이 필요하면 String 연산이 수행된다.

 

Log Library 선택
예전에는 Log4j를 많이 사용하였지만 최근에는 LogBack 라이브러리를 더 많이 사용한다.
  • LogBack의 장점
    • Log4j보다 최대 10배 빠르다.
    • Slf4j API를 바로 구현하여 오버헤드가 없다.
    • LogBack은 상세하고 지속적으로 업데이트 되는 문서가 제공된다.
    • Log Archive의 백업 개수 지정 가능
    • Log4j보다 많이 실행된 테스트
    • Dynamic Reloading 기능 지원

  • LogBack 설정 파일 우선 순위
    • Resources -> Logback.Groovy
    • Resources -> Logback.xml
    • 기본 설정

'Backend > Spring' 카테고리의 다른 글

[Spring] checkstyle 적용하기  (0) 2023.05.03
DDD(Domain Driven Design)란?  (1) 2023.04.03
[Spring] Rest-Docs 연결  (0) 2023.01.13
[Spring] 알림 기능에 SSE 적용하기  (0) 2022.11.25
[Spring] Logback 설정  (0) 2022.11.16