예외 처리는 소프트웨어 애플리케이션의 안정성을 유지하기 위해 중요합니다. 이외에도 시스템 상태를 모니터링하고 로깅하는 것이 마찬가지로 중요합니다. 제대로된 로그 및 모니터링은 문제 발생 시 디버깅을 용이하게 하고, 시스템의 불안전한 상태를 미연에 방지하는 데 도움이 됩니다.
이번 포스트에서는 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에서는 psutil
과 os
등의 라이브러리를 사용하여 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 공식 문서 및 각 라이브러리의 공식 문서에서 더 자세히 확인할 수 있습니다.
참고 문헌:
- Python 공식 문서: https://docs.python.org/3/library/logging.html
- psutil 공식 문서: https://psutil.readthedocs.io/en/latest/