[python] cx_Freeze와 함께 사용할 수 있는 로깅 도구 소개
개요
cx_Freeze는 Python 프로그램을 실행 가능한 실행 파일로 변환해주는 유용한 도구입니다. 그러나 cx_Freeze는 프로그램 실행 중 발생하는 로그를 추적하기 어려운 한계가 있습니다. 이 문제를 해결하기 위해 로그를 기록하고 추적하는 로깅 도구를 함께 사용할 수 있습니다. 이 글에서는 cx_Freeze와 함께 사용할 수 있는 로깅 도구 중 하나인 logging
모듈을 소개하고 사용 방법을 알아보겠습니다.
logging
모듈 사용 방법
logging
모듈은 Python의 표준 라이브러리로 프로그램 실행 중 발생하는 로그를 기록하고 다양한 형식으로 출력할 수 있습니다.
1. logging
모듈 import
먼저, logging
모듈을 import 해야 합니다.
import logging
2. 로그 생성하기
# 로그 생성
logging.basicConfig(filename='app.log', level=logging.DEBUG)
# 로그 메시지 작성
logging.debug('Debug 메시지')
logging.info('Info 메시지')
logging.warning('Warning 메시지')
logging.error('Error 메시지')
logging.critical('Critical 메시지')
3. 로그 기록 및 출력 설정
basicConfig()
함수를 사용하여 로그를 기록할 파일명과 로그 레벨을 설정할 수 있습니다. 기본적으로 DEBUG
레벨로 설정되어 있습니다.
logging.basicConfig(filename='app.log', level=logging.DEBUG)
로그 레벨은 다음과 같은 옵션을 가지고 있습니다.
DEBUG
: 디버그용 정보INFO
: 일반적인 정보WARNING
: 경고 메시지ERROR
: 에러 메시지CRITICAL
: 심각한 오류 메시지
4. 로그 파일에 로그 기록하기
로그는 logging.debug()
, logging.info()
, logging.warning()
, logging.error()
, logging.critical()
함수를 사용하여 기록할 수 있습니다.
logging.debug('Debug 메시지')
logging.info('Info 메시지')
logging.warning('Warning 메시지')
logging.error('Error 메시지')
logging.critical('Critical 메시지')
5. 콘솔에 로그 출력하기
로그를 콘솔에 출력하려면 StreamHandler
를 사용해야 합니다.
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)
# 로그 포맷 설정
formatter = logging.Formatter('[%(levelname)s] %(message)s')
console_handler.setFormatter(formatter)
# 콘솔 핸들러 추가
logging.getLogger('').addHandler(console_handler)
# 로그 출력
logging.debug('Debug 메시지')
logging.info('Info 메시지')
logging.warning('Warning 메시지')
logging.error('Error 메시지')
logging.critical('Critical 메시지')
결론
logging
모듈을 사용하면 cx_Freeze와 함께 실행되는 Python 프로그램에서도 로그를 쉽게 기록하고 출력할 수 있습니다. 이를 통해 프로그램 실행 중 에러를 추적하고 문제를 해결하는 데 도움이 됩니다.
더 자세한 내용은 Python 공식 문서를 참고하시기 바랍니다.