[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)

로그 레벨은 다음과 같은 옵션을 가지고 있습니다.

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 공식 문서를 참고하시기 바랍니다.