您的位置:首页 > 编程语言 > Python开发

【python】logging日志模块写入中文编码错误解决办法

2018-07-13 11:30 609 查看

 一、问题:

  使用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("这是一个测试")

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐