Logback 이란?
Logbaxk이란 Log4J를 기반으로 개발된 로깅 라이브러리
log4j에 비해 약 10배 정도 빠른 퍼포먼스, 메모리 효율성 증대
Logback 특징
•
로그에 특정 레벨을 설정할 수 있음 (Trace → Debug → Info → Warn → Error)
•
실운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인 할 수 있음
◦
테스트 상황에서는 보다 자세한 Debug 레벨로 설정
◦
실운영 상황에서는 너무 자세하면 좀 느린 단점이 있으므로 Info나 Warn 레벨로 설정
•
출력 방식에 대해 설정 할 수 있음
◦
console로 출력할 지, 파일로 저장할 지, 메일로 저장할 지, 데이터베이스에 저장할 지 등
•
설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단 없이 설정 변경 가능
◦
중단 없이가 중요! (실운영 중이라면 중단되면 큰 이슈 발생)
•
별도의 프로그램 없이 자체적으로 로그 압축을 지원
◦
로그가 많이 쌓였을 때 용량 확보를 위해 사용, 별도의 프로그램 없이
•
로그 보관 기간 설정 가능
Logback 구조
Logback 설정
일반적으로 Classpath에 있는 logback 설정 파일을 참조하게 됨
•
Java Legacy, Spring의 경우에는 logback.xml 파일을 참조
•
Spring Boot의 경우에는 logback-spring.xml 파일을 참조
→ 절대적이진 않음
Appender
Log의 형태 및 어디에 출력할지 설정하기 위한 영역
대표적인 Appender 형식은 아래와 같음
•
ConsoleAppender: 콘솔에 로그를 출력
•
FileAppender: 파일에 로그를 저장
•
RollingFileAppender: 여러 개의 파일을 순회하며 로그를 저장 (실제 사용, 레벨의 기준으로 순회)
•
SMTPAppender: 로그를 메일로 보냄
•
DBAppender: 데이터베이스에 로그를 저장
filter: 지정된 레벨에 따라 승인 및 거부
rollingPolicy - fileNamePattern: 파일 압축 패턴
rollingPolicy - maxHistory: 저장 기간
encoder - pattern: 원하는 형식으로 로그를 표현
root: 설정한 Appender를 참조하여 로그의 레벨을 설정
로그 레벨
1.
ERROR: 로직 수행 중에 오류가 발생한 경우, 시스템적으로 심각한 문제가 발생하여 작동이 불가한 경우
2.
WARN: 시스템 에러의 원인이 될 수 있는 경고 레벨, 처리 가능한 사항
3.
INFO: 상태변경과 같은 정보성 메시지
4.
DEBUG: 어플리케이션의 디버깅을 위한 메시지 레벨
5.
TRACE: DEBUG 레벨보다 더 디테일한 메시지를 표현하기 위한 레벨