【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("这是一个测试")
相关文章推荐
- python2.7使用logging模块记日志,中文记入后乱码解决办法
- Python3 使用 logging 模块输出日志中的中文乱码解决办法
- python修改logging模块实现日志按天写入
- python djange输入中文错误的解决办法
- Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
- python CGI模块获取中文编码问题解决- 部分方案
- python用open()函数打开.py等文档时出现编码错误解决办法
- python logging模块在多进程多日志文件写入时要注意的问题
- Python 使用 UTF-8 编码,python代码中包含中文时执行脚本错误的解决办法。
- 【python】f.write()写入中文出错解决办法
- python 字典中有中文,写入文件变为编码的解决方法
- python与sqlite处理中文字符时出现的编码错误问题解决
- Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
- Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
- Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file
- [置顶] python CGI模块获取中文编码问题解决- 部分方案
- Python 使用 UTF-8 编码,python代码中包含中文时执行脚本错误的解决办法。
- Non-ASCII character python文件中有中文编码出错 解决办法
- 运行Python2.x程序报编码错误的解决办法-UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordina not in range(128)[0m
- python写入带有中文的字符到文件错误解决