python3 logging模块中文乱码_【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("这是一个测试")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值