【问题标题】:Log file not UTF-8日志文件不是 UTF-8
【发布时间】:2022-01-02 17:36:41
【问题描述】:

由于尝试打开文件时出现错误,我无法在 Python 中获取日志文件:文档不是 UTF-8 有效的。

我尝试了以下方法:

import logging
logging.basicConfig(filename='/home/pi/Desktop/logEL.log', filemode='w', format=u'%(asctime)s - %(message)s', level=logging.DEBUG, encoding='utf-8')

还有:

import logging

root_logger= logging.getLogger()
root_logger.setLevel(logging.DEBUG) # or whatever
handler = logging.FileHandler('/home/pi/Desktop/logEL.log', 'a', 'utf-8')
formatter = logging.Formatter(u'%(asctime)s - %(message)s')
handler.setFormatter(formatter) 
root_logger.addHandler(handler)

打开日志文件:

【问题讨论】:

  • 你在哪个操作中遇到了什么错误?
  • 你应该添加encoding='utf-8' to logging.basicConfig`
  • “打开文件”对我来说听起来像是一个操作。请edit您的问题包括回溯。
  • 您是否删除了旧的日志文件?您正在附加('a' 标志),因此您可能会得到一个具有多种不同编码的文件。
  • Python2.7 已过时(并且很长时间以来不受支持)。很难找到一个能记住使用 Python 2.7 处理 Unicode 的所有怪癖(并且有很多怪癖)的人。所以,我认为这个问题是有效的,但是很难找到可以回答的人(并且可能还安装这样的版本)。顺便说一句,您应该尝试使用更好的编辑器打开文件(也许是一个显示无效字符的编辑器)。

标签: python logging utf-8


【解决方案1】:

使用 nano 而不是 GUI 打开日志文件似乎是诀窍。

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2016-05-04
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多