[파이썬] 로깅을 통한 예외 정보 기록

로깅은 애플리케이션에서 발생하는 예외 오류와 관련된 정보를 기록하는 중요한 도구입니다. 로깅을 사용하면 애플리케이션의 동작을 추적하고 문제를 해결하기 위해 필요한 정보를 제공할 수 있습니다. 이번 글에서는 Python에서 로깅을 사용하여 예외 정보를 기록하는 방법에 대해 알아보겠습니다.

로깅 모듈 사용하기

Python에는 logging이라는 내장 모듈이 있어 예외 정보를 기록하는 데 사용할 수 있습니다. logging 모듈은 간단하게 설정하고 유연하게 사용할 수 있는 기능을 제공합니다.

import logging

# 로깅 설정
logging.basicConfig(level=logging.ERROR,
                    format='%(asctime)s [%(levelname)s] %(message)s',
                    handlers=[
                        logging.FileHandler('error.log'),
                        logging.StreamHandler()
                    ])

# 예외 처리 코드
try:
    # 예외가 발생할 수 있는 코드
    # ...
    raise ValueError("예외 발생!")
except Exception as e:
    # 예외 정보를 로깅
    logging.error("예외 발생: %s", str(e))

위의 예시 코드에서는 basicConfig 함수를 사용하여 로깅을 기본 설정했습니다. level 매개변수를 logging.ERROR로 설정하여 ERROR 수준 이상의 로그만 기록하도록 지정했습니다.

format 매개변수는 기록될 로그 메세지의 형식을 지정합니다. asctime은 로그를 기록한 시간, levelname은 로그 메세지 수준 (e.g., ERROR, WARNING, INFO), message는 실제 로그 메세지입니다.

handlers 매개변수는 로그 메세지를 어디에 기록할지 지정합니다. 위의 코드에서는 파일(error.log)과 콘솔 출력 두 군데에 로그를 기록합니다.

예외 처리 블록에 예외 발생 코드를 작성하고, logging.error 함수를 사용하여 예외 정보를 로깅합니다. error 함수는 ERROR 수준의 로그를 기록합니다.

위의 코드를 실행하면 error.log 파일에 예외 정보가 기록되고, 콘솔에도 로그가 출력됩니다. 이렇게 로그를 기록하면 프로그램이 실행 중인 환경에서 확인할 수 있으며, 문제를 해결하는 데 도움이 됩니다.

로그 수준 설정하기

로깅은 다양한 수준의 메세지를 기록할 수 있습니다. 이러한 로그 메세지의 수준은 로깅 설정에 따라 결정됩니다.

발생하는 예외의 종류나 중요도에 따라 로그 수준을 적절하게 선택해야 합니다. 예를 들어, 디버깅 목적으로 상세한 정보를 기록하려면 DEBUG 수준으로 설정하고, 심각한 오류만 기록하려면 ERROR 수준으로 설정할 수 있습니다.

요약

로깅을 통해 예외 정보를 기록하면 애플리케이션의 동작을 추적하고 문제를 해결하는 데 도움이 됩니다. Python의 logging 모듈을 사용하면 간편하게 로그를 기록할 수 있습니다. 로깅 설정, 로그 수준 설정, 예외 처리 블록에서 로그 기록 방법에 대해 알아보았습니다. 이를 적절히 활용하여 개발 과정에서 발생하는 예외 정보를 효과적으로 기록해보세요.