Spring Boot) 로깅 프레임워크 LogBack

나나·2022년 4월 1일
0

스프링 부트

목록 보기
8/12
post-thumbnail

LogBack이란?

Log4J를 기반으로 개발된 로깅(logging) 라이브러리이다. log4j에 비해 약 10배 정도 빠른 퍼포먼스, 메모리 효율성이 증대되어 있다.

💡 출시순서: log4j → logback → log4j2

특징

  • 로그에 특정 레벨을 설정할 수 있다. (Trace → Debug → Info → Warn → Error)
  • 실운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인할 수 있다. (주로 INFO나 WARN 레벨)
  • 출력 방식에 대해 설정할 수 있다.
  • 설정 파일을 일정 시간마다 스캔하여 어플리케이션 중단 없이 설정 변경이 가능하다.
  • 별도의 프로그램 없이 자체적으로 로그 압축을 지원한다.
  • 로그 보관 기간 설정이 가능하다.

구조

이미지 출처

Appender

Log의 형태 및 어디에 출력할지 설정하기 위한 영역

대표적인 형식은 아래와 같다.

  • ConsoleAppender: 콘솔에 로그 출력
  • FileAppender: 파일에 로그 저장
  • RollingFileAppender: 여러 개의 파일을 순회하며 로그 저장
  • SMTPAppender: 로그를 메일로 보냄
  • DBAAppender: 데이터베이스에 로그 저장

encoder

Appender 내에 포함되는 항목이며, pattern을 사용하여 원하는 형식으로 로그를 표현할 수 있다.

root

설정한 Appender를 참조하여 로그의 레벨을 설정할 수 있다.
root는 전역 설정이며, 지역 설정을 하기 위해서는 logger를 사용한다.

로그 레벨

TRACE → DEBUG → INFO → WARN → ERROR
1) ERROR: 로직 수행 중에 오류가 발생한 경우, 시스템적으로 심각한 문제가 발생하여 작동이 불가한 경우
2) WARN: 시스템 에러의 원인이 될 수 있는 경고 레벨, 처리 가능한 사항
3) INFO: 상태변경과 같은 정보성 메시지
4) DEBUG: 어플리케이션의 디버깅을 위한 메시지 레벨
5) TRACE: DEBUG 레벨보다 더 디테일한 메시지를 표현하기 위한 레벨

예를 들어 로그 레벨을 'INFO'라고 설정했을 경우, 'TRACE', 'DEBUG' 레벨은 출력되지 않는다.

설정

일반적으로 Classpath에 있는 logback 설정 파일을 참조한다.

  • Java Legacy, Spring의 경우에는 logback.xml 파일을 참조
  • Spring Boot의 경우에는 logback-spring.xml을 참조

참고)
어라운드허브 스튜디오

profile
코린이의 둥당둥당 개발일지

0개의 댓글