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 설정은 프로그램, XML 또는 Groovy 형식으로 표현된 스크립트를 사용하여 구성할 수도 있으며 기존 log4j 사용자는 웹 응용 프로그램을 사용하여 log4j.properties 파일을 logback.xml로 변환할 수 있다. 또한 할 수 있다. 또, 구성 파일의 조건부 처리를 서포트하고 있기 때문에, 단일의 구성 파일로 개발, 테스트, 프로덕션 등의 다양한 환경을 적절히 타겟으로 할 수 있다.
  • 광범위한 필터링 기능
  • 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에 따라 재배포될 수 있다.

참고 정보




최종 수정 : 2024-01-18