Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
读取Python日志文件(日志记录)时发生Unicode错误_Python_Logging_Unicode - Fatal编程技术网

读取Python日志文件(日志记录)时发生Unicode错误

读取Python日志文件(日志记录)时发生Unicode错误,python,logging,unicode,Python,Logging,Unicode,我正在使用Pythons日志库创建一个日志文件。当我试图用python阅读并在html页面上打印它(使用Flask)时,我得到: 如何解决此问题?除非您指定了不同的编码,否则日志记录包文件处理程序将把发送给它的任何Unicode对象编码为UTF-8 使用再次将文件作为UTF-8数据读取,您将再次获得unicode对象,非常适合Jinja2: import io log = io.open('log.log', encoding='utf8') 您也可以为TimedRotatingFileHa

我正在使用Pythons日志库创建一个日志文件。当我试图用python阅读并在html页面上打印它(使用Flask)时,我得到:


如何解决此问题?

除非您指定了不同的编码,否则
日志记录
包文件处理程序将把发送给它的任何Unicode对象编码为UTF-8

使用再次将文件作为UTF-8数据读取,您将再次获得
unicode
对象,非常适合Jinja2:

import io

log = io.open('log.log', encoding='utf8')
您也可以为
TimedRotatingFileHandler
指定不同的编码,但UTF-8是一个很好的默认值。如果要选择不同的编码,请使用
编码
关键字参数:

fileLogger = logging.handlers.TimedRotatingFileHandler(
    filename='log.log', when='midnight', backupCount=30,
    encoding='Latin1')

我不熟悉flask,但是如果你能把日志的内容作为字符串抓取的话。您可以将其编码为utf-8,如下所示:

string=string.encode('utf-8')#string是日志的内容,现在为utf-8

import io

log = io.open('log.log', encoding='utf8')
fileLogger = logging.handlers.TimedRotatingFileHandler(
    filename='log.log', when='midnight', backupCount=30,
    encoding='Latin1')