들어가며
스프링을 개발하며 사용했던 Log를 출력하기 위해 사용하는 인터페이스인 slf4j에 대해 알아보려고 한다.
본론
slf4j
: Simple Logging Facade For Java 의 줄임말로 Java의 로깅을 위한 인터페이스이다. 해당 추상화를 구현한 구현체(logback, log4j)를 선택해서 사용할 수 있지만, Spring에서는 logback을 기본으로 사용하게 되어있다.
Logback
: slf4j의 구현체로 아래와 같은 특징이 있다.
- 비동기 로깅
: 별도의 스레드를 통해 로그 메시지를 처리하여 어플리케이션의 성능에 크게 영향을 끼치지 않음
- 효율적인 객체 생성
: 가능한 적은 수의 객체를 생성
- 배치 작업
: 가능한 많은 로그 이벤트를 함께 처리
- 최적화 된 문자열 처리
: 로그 메시지를 생성하는데 필요한 문자열 연결을 최소화
- 조건부 로깅
: 로그 레벨 설정을 통해 필요한 로그 메시지만 기록할 수 있음
- 유연한 구성
: XML이나 Groovy를 통해 로그의 출력 방식, 로그 레벨을 쉽게 설정할 수 있음
- 다양한 로그 대상 지원
: 콘솔, 파일, 데이터베이스 등 다양한 대상에 로그를 기록할 수 있음
- 파일 로테이션
: 로그 파일이 특정 크기에 도달하면 새 파일을 생성하고 오래된 로그파일을 삭제