포스트

Log Level

로그 레벨은 왜 필요한가

로그 레벨은 모든 로그를 같은 무게로 다루지 않기 위한 장치다. 개발 중에는 자세한 로그가 필요하지만, 운영 환경에서는 중요한 신호를 빠르게 골라낼 수 있어야 한다.

보통 다음 순서로 심각도가 올라간다.

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR

각 레벨의 역할

TRACE

가장 세밀한 실행 흐름을 남긴다. 메서드 진입, 내부 상태, 반복문 단위 추적처럼 개발이나 디버깅 목적에 가깝다. 운영 상시 활성화는 드물다.

DEBUG

개발과 장애 분석용 로그다. 주요 분기, 외부 호출 입력값, 내부 상태 확인에 쓴다. 운영에서는 특정 모듈에만 일시적으로 켜는 경우가 많다.

INFO

시스템의 정상적인 주요 이벤트를 기록한다. 서버 시작, 배치 완료, 중요한 상태 전이, 외부 연동 성공 같은 로그가 여기에 해당한다.

WARN

지금 당장 실패는 아니지만 주의가 필요한 상황이다. 재시도 발생, fallback 사용, 임계치 근접, 예상 밖 입력이 대표적이다.

ERROR

실패가 실제로 발생했고 대응이 필요한 상황이다. 요청 실패, 처리 중단, 데이터 손상 가능성, 외부 시스템 오류 등이 여기에 해당한다.

실무에서 흔한 문제

  • 정상 흐름을 ERROR로 남긴다.
  • 운영에서 DEBUG를 전체 활성화한다.
  • 예외 메시지 없이 “실패했습니다”만 남긴다.
  • WARNERROR 기준이 모호하다.

이런 경우 로그량은 많아도 장애 분석 효율은 떨어진다.

좋은 기준

  • 운영자가 이 로그를 보고 바로 행동해야 하면 ERROR
  • 지금은 버티지만 추적이 필요하면 WARN
  • 정상 흐름에서 중요한 이정표면 INFO
  • 개발/분석 목적이면 DEBUG 또는 TRACE

정리

로그 레벨은 단순한 출력 강도가 아니라 운영 관점에서 신호의 우선순위를 정하는 기준이다. 레벨이 일관돼야 모니터링, 알람, 장애 대응도 일관되게 작동한다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

댓글

아직 댓글이 없습니다