안녕하세요! 전에 Python의 logging 모듈을 사용하는 방법에 대해 포스팅한 적이 있었는데요, 이번에는 logging 파일에서 발생하는 한글 깨짐 현상을 해결하는 방법을 소개하려고 합니다. Python에서 로그 파일에 한글로 로그를 남기면 글자가 깨지는 문제를 만날 수 있는데, 이를 해결하기 위한 두 가지 방법을 가져왔습니다.
1. 로그 파일 생성 시 인코딩 설정하기
로그 파일을 처음 생성할 때부터 UTF-8 인코딩을 설정하면, 한글 깨짐 현상을 예방할 수 있습니다. 이를 위해 FileHandler를 설정할 때 encoding='utf-8' 옵션을 추가하면 됩니다.
import logging
# 로깅 설정
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# 파일 핸들러 설정 (UTF-8 인코딩)
file_handler = logging.FileHandler('my_log_file.log', encoding='utf-8')
file_handler.setLevel(logging.DEBUG)
# 포매터 설정
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)
# 핸들러를 로거에 추가
logger.addHandler(file_handler)
# 로그 메시지 작성 예시
logger.debug('디버그 메시지')
logger.info('정보 메시지')
logger.warning('경고 메시지')
logger.error('에러 메시지')
logger.critical('심각한 에러 메시지')
2. 이미 생성된 로그 파일의 인코딩 변환하기
만약 이미 생성된 로그 파일에서 한글이 깨지는 현상이 발생했다면, 해당 파일을 다른 인코딩에서 UTF-8로 변환하는 방법을 사용할 수 있습니다. 아래 코드는 기존 인코딩이 CP949인 로그 파일을 UTF-8로 변환하는 예시입니다.
# 이미 생성한 로그 파일 인코딩 변환 (예: 기존 인코딩이 'cp949'라면)
with open('old_log_file.log', 'r', encoding='cp949') as f:
content = f.read()
with open('new_log_file_utf8.log', 'w', encoding='utf-8') as f:
f.write(content)
Python의 logging 모듈을 사용하면서 한글로 로그를 남기는 게 눈에 더 잘 보이겠다 싶은 상황이 있어서 찾아본 방법들입니다. 한글로 로그를 남기고 싶은 분들께 도움이 되면 좋겠습니다. 오늘도 읽어주셔서 감사합니다!