본문 바로가기
Category/Note

로그 레벨(Log Level)이란?

by Corinee 2024. 9. 16.
728x90
반응형

로그 레벨(Log Level)은 애플리케이션이 실행되는 동안 기록되는 로그의 중요도나 심각도를 구분하는 기준입니다. 이를 통해 어떤 종류의 이벤트를 기록할지 결정하고, 나중에 로그 파일을 분석할 때 발생한 문제의 원인을 찾거나 애플리케이션의 동작 상태를 확인할 수 있습니다. 각 로그 레벨은 특정한 종류의 메시지를 의미하며, 중요도에 따라 다섯 가지로 나눌 수 있습니다.

주요 로그 레벨

  1. DEBUG:
    • 의미: 디버깅 목적으로 사용되며, 개발 중에 발생하는 상세한 정보를 기록합니다. 실행 흐름이나 변수 값 등을 추적할 때 유용합니다.
    • 사용 예시: 함수 호출 시 파라미터 값이나 로직의 세부 단계.
    • 언제 사용?: 개발 중에 애플리케이션의 상태를 세밀하게 추적할 때 사용합니다.
  2. INFO:
    • 의미: 일반적인 정보를 기록하며, 애플리케이션의 정상적인 동작을 나타냅니다. 주로 중요한 이벤트나 작업이 성공적으로 완료되었음을 알리는 로그입니다.
    • 사용 예시: 서버가 시작되었거나, 사용자 로그인 성공 등의 정보.
    • 언제 사용?: 시스템 상태나 중요한 정보의 흐름을 모니터링할 때 사용합니다.
  3. WARNING:
    • 의미: 주의가 필요한 상황이나 문제가 발생할 수 있는 이벤트를 기록합니다. 애플리케이션은 계속 동작하지만, 잠재적으로 문제를 일으킬 수 있는 상황을 나타냅니다.
    • 사용 예시: API 호출 실패 시 재시도, 용량이 거의 다 찬 디스크 경고 등.
    • 언제 사용?: 문제는 아니지만, 주의 깊게 살펴볼 필요가 있는 상황에서 사용합니다.
  4. ERROR:
    • 의미: 오류가 발생했지만, 애플리케이션이 계속 동작할 수 있는 문제를 기록합니다. 문제를 해결하지 않으면 기능이 제대로 동작하지 않을 수 있습니다.
    • 사용 예시: 데이터베이스 연결 실패, 파일을 읽지 못하는 경우.
    • 언제 사용?: 시스템이 특정 요청을 처리하는 데 실패했을 때 사용합니다.
  5. CRITICAL:
    • 의미: 치명적인 오류가 발생하여 애플리케이션이 계속해서 동작할 수 없거나 심각한 문제가 발생했을 때 기록합니다. 즉각적인 조치가 필요합니다.
    • 사용 예시: 시스템 충돌, 메모리 부족, 데이터 손실.
    • 언제 사용?: 애플리케이션이나 시스템 전체에 중대한 영향을 미치는 오류가 발생했을 때 사용합니다.

로그 레벨의 설정과 사용

로그 레벨은 기록할 로그의 중요도에 따라 결정되며, 각각의 로그 레벨에 맞는 메시지만 기록되도록 설정할 수 있습니다. 예를 들어, 로그 레벨이 WARNING으로 설정된 경우, DEBUG와 INFO 수준의 로그는 기록되지 않고, WARNING 이상의 로그만 기록됩니다.

로그 레벨 예시 코드 (Python의 logging 모듈)

import logging

# 로그 레벨 설정 (INFO 이상만 기록)
logging.basicConfig(level=logging.INFO)

# 각 로그 레벨별 메시지
logging.debug("이것은 디버그 메시지입니다.")  # 기록되지 않음
logging.info("정보: 애플리케이션이 정상적으로 시작되었습니다.")  # 기록됨
logging.warning("경고: API 호출이 실패했습니다. 재시도합니다.")  # 기록됨
logging.error("오류: 파일을 찾을 수 없습니다.")  # 기록됨
logging.critical("치명적 오류: 시스템이 곧 종료됩니다.")  # 기록됨

이 코드는 로그 레벨을 INFO로 설정했기 때문에 DEBUG 메시지는 기록되지 않으며, INFO 이상의 로그만 기록됩니다.

정리

  • DEBUG: 개발 및 디버깅을 위한 상세한 로그.
  • INFO: 애플리케이션의 정상 동작을 기록하는 일반 로그.
  • WARNING: 문제를 일으킬 수 있는 상황.
  • ERROR: 실패한 요청이나 처리 중 발생한 오류.
  • CRITICAL: 치명적인 문제로, 즉각적인 조치가 필요한 상황.

이러한 로그 레벨을 적절하게 사용하면 애플리케이션의 동작 상태를 효율적으로 모니터링하고, 발생한 문제를 신속히 해결할 수 있습니다.