读取Python日志文件(日志记录)时发生Unicode错误
我正在使用Pythons日志库创建一个日志文件。当我试图用python阅读并在html页面上打印它(使用Flask)时,我得到:读取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
如何解决此问题?除非您指定了不同的编码,否则
日志记录
包文件处理程序将把发送给它的任何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')