Logback
Logback 개요
Logback은 log4j의 후속 프로젝트가 되기 위한 목적으로 log4j의 창시자인 Ceki Gülcü에 의해 설계되었다.
Logback은 견고한 로깅 시스템 설계로 얻은 10년의 경험을 바탕으로 기존 로깅 시스템보다 빠르며 사용하는 리소스도 작다.
또한, Logback은 다른 로깅 시스템에 없는 고유한 편리한 기능을 제공한ㅏ.
현재 Logback은 logback-core, logback-classic, logback-access의 3개의 모듈로 나뉘어져 있다.
- logback-core 모듈은 다른 2개의 모듈의 베이스가 된다.
- logback-classic 모듈은 대폭 개선된 버전 log4j 1.x의 내용을 흡수할 수 있다.
- logback-access 모듈은 Tomcat 및 Jetty와 같은 서블릿 컨테이너와 통합되어 HTTP 액세스 로깅 기능을 제공한다.
Logback의 주요 특징
주요 특징은 다음과 같다.
- 고속 및 메모리 감소
- log4j 1.x에 근거해 특정의 중요한 실행 패스를 약 10배 고속으로 실행하도록 재기록되어 메모리 사용량도 작아지고 있다.
- 범용성
- logback-classic은 SLF4J API를 네이티브 구현하고 있기 때문에, Logback과 log4j 1.x나
java.util.logging
(JUL)등의 다른 로깅 프레임워크를 간단하게 바꿀 수 있다.
- logback-classic은 SLF4J API를 네이티브 구현하고 있기 때문에, Logback과 log4j 1.x나
- 유연성
- Logback 설정은 프로그램, XML 또는 Groovy 형식으로 표현된 스크립트를 사용하여 구성할 수도 있으며 기존 log4j 사용자는 웹 응용 프로그램을 사용하여
log4j.properties
파일을logback.xml
로 변환할 수 있다. 또한 할 수 있다. 또, 구성 파일의 조건부 처리를 서포트하고 있기 때문에, 단일의 구성 파일로 개발, 테스트, 프로덕션 등의 다양한 환경을 적절히 타겟으로 할 수 있다.
- Logback 설정은 프로그램, XML 또는 Groovy 형식으로 표현된 스크립트를 사용하여 구성할 수도 있으며 기존 log4j 사용자는 웹 응용 프로그램을 사용하여
- 광범위한 필터링 기능
- log4j 1.x에서 제공하는 것보다 광범위한 필터링 기능이 함께 제공된다(예 : 문제를 식별하는 사용자 만 디버그 수준으로 설정하고 다른 사용자는 경고 수준에서 로그를 유지할 수 있다).
Logback, Log4j, Log4j2의 성능 비교
단위: ops/ms
스레드 | log4j동기화 | log4j 비동기 | log4j2 동기화 | log4j2 비동기 | Logback 1.3.0 동기화 | Logback 1.3.0 비동기 |
---|---|---|---|---|---|---|
1 | 987.08 | 745.34 | 884.33 | 844.67 | 2,139.83 | 1,760.30 |
2 | 542.27 | 716.09 | 1,220.76 | 819.40 | 2,276.77 | 1,821.36 |
4 | 639.86 | 676.35 | 1,406.60 | 770.27 | 1,836.99 | 1,799.39 |
8 | 633.13 | 726.21 | 1,257.63 | 733.25 | 1,787.62 | 1,774.99 |
16 | 585.13 | 693.74 | 1,211.31 | 722.34 | 1,813.09 | 1,815.10 |
32 | 643.85 | 657.08 | 1,203.27 | 704.08 | 1,782.81 | 1,751.21 |
64 | 576.67 | 696.21 | 1,236.37 | 726.15 | 1,740.27 | 1,644.81 |
Logback의 주요 기능
주요 기능은 다음과 같다.
- 로그 출력 방법 지정 기능(Logger)
- 로그 출력처 지정 기능(Appender)
- 로그 출력 포맷 지정 기능(Layout)
- 로그 필터링 기능(Filter)
Logback과 유사한 기능을 제공하는 라이브러리
- Apache Log4j
- java.util.logging (JUL)
Logback 로깅 수준
Logback은 5가지 로그 레벨을 표준으로 제한다.
레벨은 아래 표와 같이 순서화되어 있다고 가정한다.
TRACE < DEBUG < INFO < WARN < ERROR
레벨 | 설명 |
---|---|
TRACE | 중요도가 매우 낮은 정보 이벤트 |
DEBUG | 심각도가 낮은 정보 이벤트 |
INFO | 전반적인 진행 상황을 나타내는 이벤트 |
WARN | 잠재적으로 유해한 상황을 나타내는 이벤트 |
ERRROR | 오류 이벤트 (치명적인지 여부에 관계 없음) |
Logback 운영 환경
전제가 되는 동작 환경은 다음과 같다.
-
서버 OS
- Java Runtime Environment(JRE)의 동작 환경에 준한다
-
기타 운영 환경
-
Logback 버전 1.3.x 이상에서는 빌드에 Java 9가 필요하다. (단, Java8 이후에서 실행은 가능하다.)
-
Logback 버전 1.2.x의 경우 Java 6.x가 필요하다.
Logback 라이센스
- Logback은 Eclipse Public License v1.0 또는 Lesser General Public License version 2.1에 따라 재배포될 수 있다.
참고 정보
- Logback 공식 사이트
- Logback 다운로드 페이지
- Logback 소스 리포지토리
- Logback 공식 문서
- Logback 공지 페이지
최종 수정 : 2024-01-18