[python] 예외 처리에서의 로그 및 모니터링

예외 처리는 소프트웨어 애플리케이션의 안정성을 유지하기 위해 중요합니다. 이외에도 시스템 상태를 모니터링하고 로깅하는 것이 마찬가지로 중요합니다. 제대로된 로그 및 모니터링은 문제 발생 시 디버깅을 용이하게 하고, 시스템의 불안전한 상태를 미연에 방지하는 데 도움이 됩니다.

이번 포스트에서는 Python에서 예외 처리 시 로그 및 모니터링을 어떻게 수행하는지에 대해서 살펴보겠습니다.

1. 로깅

Python은 내장된 logging 모듈을 제공하여 로깅을 쉽게 구현할 수 있습니다. 이 모듈을 사용하면 로깅 레벨, 포맷, 핸들러 등을 설정하여 다양한 방식으로 로그를 기록하고 출력할 수 있습니다.

예를 들어, 아래는 간단한 예외 처리에서의 로깅 방법입니다:

import logging

logging.basicConfig(filename='app.log', level=logging.ERROR)

try:
    # 예외를 발생시킬 코드
    raise ValueError('예외 발생!')
except Exception as e:
    logging.error('에러 발생', exc_info=True)

이 예제에서는 logging.basicConfig를 사용하여 app.log 파일에 에러 레벨 이상의 로그를 남기도록 설정하였습니다. logging.error 메서드를 사용하여 예외가 발생했을 때 에러 메시지와 스택 트레이스를 app.log 파일에 남기고 있습니다.

2. 모니터링

시스템 상태를 모니터링하는 것은 예외 처리와 마찬가지로 중요합니다. Python에서는 psutilos 등의 라이브러리를 사용하여 CPU, 메모리, 디스크 사용량 등의 시스템 상태를 감지하고 모니터링할 수 있습니다.

예를 들어, 다음은 CPU 사용량을 모니터링하는 간단한 예제입니다:

import psutil

cpu_percent = psutil.cpu_percent(interval=1)
print(f'CPU 사용량: {cpu_percent}%')

위 예제에서 psutil.cpu_percent 메서드를 사용하여 1초 간격으로 CPU 사용량을 가져와 출력하고 있습니다.

마무리

Python에서 예외 처리 시 로그를 남기고 시스템 상태를 모니터링하는 것은 안정적인 소프트웨어를 개발하기 위해 필수적입니다. logging 모듈을 사용하여 로그를 남기고, psutil 등의 라이브러리를 사용하여 시스템 상태를 모니터링하여 안정성을 높일 수 있습니다.

위에서 언급한 내용은 Python 공식 문서 및 각 라이브러리의 공식 문서에서 더 자세히 확인할 수 있습니다.

참고 문헌: