Python3 中記錄日誌並輸出到 log 檔案中的方法(防止輸出中文亂碼)
阿新 • • 發佈:2019-01-30
# -*- 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
參考資料: