[python] 예외 처리에서의 로깅 작성

소프트웨어 개발 과정에서 예외 처리는 매우 중요합니다. 올바른 예외 처리를 통해 시스템의 안전성과 신뢰성을 높일 수 있습니다. 또한, 예외가 발생한 경우 이를 기록하고 분석할 수 있도록 로깅은 필수적입니다.

예외 처리

파이썬에서는 tryexcept 문을 사용하여 예외 처리를 할 수 있습니다.

try:
    # 예외가 발생할 수 있는 코드
    result = 10 / 0
except ZeroDivisionError as e:
    # 예외가 발생했을 때의 처리
    print(f"에러 발생: {e}")

로깅 작성

예외가 발생했을 때, 이를 로깅하여 추적 및 분석할 수 있습니다. 파이썬의 기본 로깅 모듈(logging)을 사용하여 로그를 작성할 수 있습니다.

import logging

try:
    result = 10 / 0
except ZeroDivisionError as e:
    # 예외 발생을 로그에 기록
    logging.error("에러 발생", exc_info=True)

위의 코드에서 exc_info=True는 예외 정보를 로그에 포함할 것을 지정하는 옵션입니다.

로깅 레벨

로깅에는 여러 레벨이 있으며, 각 레벨마다 적합한 상황이 있습니다.

import logging

logging.basicConfig(level=logging.DEBUG)
logging.debug('Debug 레벨 메시지')
logging.info('Info 레벨 메시지')
logging.warning('Warning 레벨 메시지')
logging.error('Error 레벨 메시지')
logging.critical('Critical 레벨 메시지')

로그 파일 생성

로그를 파일로 기록하고 싶다면, FileHandler를 사용하여 파일 핸들러를 추가할 수 있습니다.

import logging

# 로그를 파일로 작성할 핸들러 추가
file_handler = logging.FileHandler('example.log')
file_handler.setLevel(logging.ERROR)

# 포매터 지정
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)

# 로거에 핸들러 추가
logger = logging.getLogger(__name__)
logger.addHandler(file_handler)

logger.error('이 메시지는 파일에 기록됩니다.')

위의 예제에서는 ERROR 레벨 이상의 로그만 파일에 기록되도록 설정하였습니다.

예외 처리와 로깅을 통해 소프트웨어의 안정성을 높이고, 문제 발생 시 빠르게 대응할 수 있습니다.

참고 문헌