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
- 기본 설정