안녕하세요! 오늘은 Python에서 작업 로그를 남기는 방법에 대해 소개하려고 합니다. 파이썬으로 작업하는 과정에서 에러나 중요한 이벤트가 로그 파일에 기록되게 할 수 있습니다. 최근 파이썬으로 자동화 작업을 할 때 에러나 중요한 이벤트들을 추적하기 위해 로그가 남도록 세팅했었는데요. 작업 과정마다 로그가 남으니 문제가 발생한 부분을 쉽게 파악할 수 있어 유용해 가져와봤습니다.
logging 모듈이란?
logging 모듈은 파이썬 표준 라이브러리로, 프로그램 실행 중 발생하는 다양한 정보를 기록하는 데 사용됩니다. 이 모듈을 사용하면 작업의 중요한 이벤트를 기록하고, 에러가 발생했을 때 이를 추적할 수 있으며, 기록된 로그를 통해 프로그램이 어떻게 실행되는지 확인할 수 있습니다.
logging 사용법
기본적인 logging 설정
로그를 남기기 위해서는 먼저 로그의 기본 설정을 해야 합니다. 아래 코드를 사용해 로그 파일을 저장하고 중요도에 따라 메시지를 구분할 수 있습니다.
import logging
# 로그 설정
logging.basicConfig(filename="download_log.log", # 로그 파일 이름
level=logging.INFO, # 로그 레벨 설정 (INFO 이상 레벨만 기록)
format="%(asctime)s - %(levelname)s - %(message)s") # 로그 출력 형식
위 코드는 로그를 download_log.log 파일에 저장하도록 설정하고, 로그의 형식을 [시간 - 로그 레벨 - 메시지]로 지정했습니다. 또한 로그 레벨을 INFO로 설정해, INFO 레벨 이상의 메시지만 기록됩니다. 로그 레벨은 다음과 같은 순서로 중요도가 높아집니다.
- DEBUG: 디버깅용 메시지
- INFO: 일반적인 정보 메시지
- WARNING: 경고 메시지
- ERROR: 에러 메시지
- CRITICAL: 심각한 에러 메시지
로그 남기기: logging.info()와 logging.error()
이제 로그를 남기는 방법을 알아보겠습니다. 각 상황에 맞는 로그 메시지를 logging.info()나 logging.error() 등을 사용해 남길 수 있습니다.
import logging
# 로그 설정
logging.basicConfig(filename="download_log.log",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s")
# 정보 로그 남기기
logging.info("파일 다운로드가 시작되었습니다.")
# 에러 발생 시 에러 로그 남기기
try:
1 / 0 # 예시: 0으로 나누기 에러
except ZeroDivisionError:
logging.error("에러가 발생했습니다: 0으로 나누기")
로그 파일의 예시
위 코드를 실행하면 download_log.log 파일에 다음과 같이 로그가 기록되어 작업이 정상적으로 실행되었는지, 오류가 발생했는지 쉽게 확인할 수 있습니다.
2024-09-18 14:45:32,123 - INFO - 파일 다운로드가 시작되었습니다.
2024-09-18 14:45:32,125 - ERROR - 에러가 발생했습니다: 0으로 나누기
logging 모듈을 사용하면 간단한 설정만으로 작업의 중요한 이벤트를 파일로 기록할 수 있습니다. 작업이 길어지거나 복잡해질수록 로그 파일이 문제를 빠르게 파악하고, 해결하는데 큰 도움이 되니 한번 사용해보시면 좋을 것 같습니다. 오늘도 읽어주셔서 감사합니다.