Post

Spring Boot에서 로그 레벨

Spring Boot에서 로그 레벨

1. 로그 레벨(Log Level)이란?

로그 레벨(Log Level)은 로그 메시지의 중요도(Level of Importance)를 나타내는 지표이다. 로깅 시스템에서는 이 레벨을 기준으로 로그를 기록할지 여부를 결정하며, 프로그램의 상태를 추적하고 문제를 분석하는 데 사용된다.


2. 로그 레벨 종류

🟦 1) TRACE

  • 가장 상세한 로그 레벨
  • 애플리케이션의 실행 흐름과 디버깅 정보를 자세히 기록한다.
  • 디버깅 시에만 주로 사용된다.

🟩 2) DEBUG

  • 디버깅 목적으로 사용된다.
  • 개발 단계에서 애플리케이션의 내부 동작을 분석할 때 유용하다.
  • 예: 변수 값, 함수 호출 순서 등 상세한 정보 출력.

🟨 3) INFO

  • 정보성 메시지를 기록한다.
  • 시스템의 정상적인 동작 흐름이나 주요 이벤트를 전달한다. 예: 서비스 시작, 종료, 주요 프로세스 완료 등.

🟧 4) WARN

  • 경고성 메시지를 기록한다.
  • 프로그램이 정상 동작 중이지만, 주의가 필요한 잠재적 문제를 알린다. 예: 예상치 못한 입력값, 일시적 네트워크 장애 등.

🟥 5) ERROR

  • 오류 메시지를 기록한다.
  • 애플리케이션의 정상 동작에 영향을 주는 문제를 나타낸다. 예: 예외 발생, 실패한 데이터 처리 등.

⬛ 6) FATAL

  • 가장 심각한 오류 레벨이다.
  • 시스템의 동작이 중단될 수 있는 치명적 문제를 의미한다. 예: 복구 불가능한 시스템 장애, 주요 리소스 손실 등.

3. 로깅 시스템 설정

로깅 시스템에서는 설정 파일(예: log4j.xml)을 통해 로그 레벨을 지정한다. 설정된 로그 레벨보다 중요도가 높은 로그 메시지만 기록된다.

예시: 로그 레벨이 DEBUG로 설정되어 있으면 TRACE는 기록되지 않지만, DEBUG, INFO, WARN, ERROR, FATAL은 기록된다.


📄 log4j.xml 설정 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
<configuration>
    <appender name="Console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
        </layout>
    </appender>

    <root>
        <!-- 로그 레벨 설정 -->
        <priority value="DEBUG" />
        <appender-ref ref="Console" />
    </root>
</configuration>

✅ 요약

로그 레벨설명사용 시점
TRACE가장 상세한 실행 흐름 기록디버깅 심화 단계
DEBUG내부 동작 상세 분석개발 단계
INFO주요 동작 정보운영 중 정상 흐름 확인
WARN경고 메시지잠재적 문제 감지
ERROR오류 발생예외 및 장애 처리
FATAL치명적 오류시스템 중단 수준의 문제
This post is licensed under CC BY 4.0 by the author.