【python】logging日志模塊寫入中文編碼錯誤解決辦法


 一、問題:

  使用python的logging模塊記錄日志,有時會遇到中文編碼問題錯誤。

二、解決辦法:

  在logging.FileHandler(path) 中添加指定編碼方式 encoding='utf-8' 即可,logging.FileHandler(path, encoding='utf-8') 。

  示例日志模塊代碼:

import logging,sys

filelog = True
path = r'log.txt'

logger = logging.getLogger('log')
logger.setLevel(logging.DEBUG)

# 調用模塊時,如果錯誤引用,比如多次調用,每次會添加Handler,造成重復日志,這邊每次都移除掉所有的handler,后面在重新添加,可以解決這類問題
while logger.hasHandlers():
    for i in logger.handlers:
        logger.removeHandler(i)

# file log
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
if filelog:
    fh = logging.FileHandler(path,encoding='utf-8')
    fh.setLevel(logging.DEBUG)
    fh.setFormatter(formatter)
    logger.addHandler(fh)

# console log
formatter = logging.Formatter('%(message)s')
ch = logging.StreamHandler(sys.stdout)
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
logger.addHandler(ch)

if __name__ == '__main__':
    logger.info("這是一個測試")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM