Logback이란?
몇 년 전까지 자바 프로젝트에서 가장 많이 사용되는 로그 라이브러리는 Log4j였다. 지금은 개발이 종료되기는 했지만 Log4j는 자바의 예외를 처리하기위해 시작된 프로젝트였다. Log4j의 개발자는 로거에 대해 좀 더 깊은 프로젝트를 시작했고 그 결과 Log4j를 토대로 Logback을 만들게 되었다.
Logback의 장점
- 오랫동안 널리 사용되고 검증된 Log4j를 기반으로 다시 작성되었다. Log4j와 비교해 성능은 약 10배정도 빠르고 메모리 사용량도 적다
- Log4j부터 진행한 테스트 경험을 토대로 더욱 광범위한 테스트를 통해 검증하게 되었다.
- 로그 설정이 변경될 경우 서버를 재시작하지 않더라도 바로 반영된다. Log4j와 같은 로그 라이브러리는 로그 설정을 변경할 경우 서버를 재시작해야 반영이 되었다. 하지만 Logback은 로그 설정이 변경될 경우 내부에 설정 변화를 감지하는 별도의 스레드가 존재하기 때문에 서버의 재시작 없이 바로 반영된다. 이러한 스레드는 서버에 초당 100만번이 넘는 요청을 하더라도 애플리케이션의 성능에 영향을 끼치지 않는다.
Log Level
- trace: 모든 로그를 출력한다.
- debug: 개발할 때 디버그 용도로 사용한다.
- info: 상태 변경등과 같은 정보성 메세지를 나타낸다.
- warn: 프로그램의 실행에는 문제가 없지만 추후 시스템 에러의 원인이 될 수 있다는 경고성 메시지를 의미한다.
- error: 요청을 처리하던 중 문제가 발생한 것을 의미한다.
위의 예시에서 가장 윗줄이 낮은 레벨이고, 아래로 갈수록 레벨이 높아지며 설정한 로그 레벨 이상의 로그만 출력된다. 예를 들어 설정 레벨을 info로 했을 경우 info레벨과, info레벨보다 높은 warn, error로그가 출력된다.