1. 程式人生 > >Python3 中記錄日誌並輸出到 log 檔案中的方法(防止輸出中文亂碼)

Python3 中記錄日誌並輸出到 log 檔案中的方法(防止輸出中文亂碼)

# -*- coding: utf-8 -*-

import logging.handlers


LOG_FILE = r'tst.log'

handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=1024 * 1024, backupCount=5, encoding='utf-8')  # 例項化handler
fmt = '%(asctime)s - %(levelname)s - %(message)s'

formatter = logging.Formatter(fmt)  # 例項化formatter
handler.setFormatter(formatter)  # 為handler新增formatter
logger = logging.getLogger('tst') # 獲取名為tst的logger logger.addHandler(handler) # 為logger新增handler logger.setLevel(logging.DEBUG) logger.info(u'輸出中文試一試') logger.debug('first debug message')

注意在 logging.handlers.RotatingFileHandler 此處要設定 encoding 格式,否則輸出日誌中的中文會亂碼

2018-01-18 10:52:44,281 - INFO - ���������һ��
2018-01-18
10:52:44,281 - DEBUG - first debug message 2018-01-18 10:53:42,002 - INFO - ���������һ�� 2018-01-18 10:53:42,003 - DEBUG - first debug message 2018-01-18 10:54:54,226 - INFO - ���������һ�� 2018-01-18 10:54:54,226 - DEBUG - first debug message 2018-01-18 10:58:10,126 - INFO - 輸出中文試一試 2018-01-18 10:58:10,126 - DEBUG - first debug
message

參考資料: