创建filehandler的时候指定编码为utf-8,可以参考handler的构造方法:https://docs.python.org/3.6/l... 如果是使用配置文件,也可以在配置文件的handler参数中指定编码:[loggers]keys=root,main [logger_root]level=DEBUGhandlers=consoleHandler [logger_main]level=DEBUGhandlers=fileHandlerqualname=main [handlers]keys=consoleHandler,fileHandler [handler_consoleHandler]class=StreamHandlerlevel=DEBUGformatter=fmtargs=(sys.stdout,) [handler_fileHandler]class=logging.handlers.RotatingFileHandlerlevel=DEBUGformatter=fmtargs=('logs/debug.log','a',1048576,5,'utf-8') [formatters]keys=fmt [formatter_fmt]format=%(asctime)s - %(name)s - %(levelname)s - %(message)sdatefmt= 以上是我搜索不到答案,参考官方文档实验出来的,所以详细写出来,供大家参考。
创建filehandler的时候指定编码为utf-8,可以参考handler的构造方法:
https://docs.python.org/3.6/l...
如果是使用配置文件,也可以在配置文件的handler参数中指定编码:
[loggers]
keys=root,main
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_main]
level=DEBUG
handlers=fileHandler
qualname=main
[handlers]
keys=consoleHandler,fileHandler
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=fmt
args=(sys.stdout,)
[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=fmt
args=('logs/debug.log','a',1048576,5,'utf-8')
[formatters]
keys=fmt
[formatter_fmt]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
以上是我搜索不到答案,参考官方文档实验出来的,所以详细写出来,供大家参考。