gpt4 book ai didi

python-3.x - python 3.6 *记录模块错误* UnicodeEncodeError : 'charmap' codec can't encode characters

转载 作者:行者123 更新时间:2023-12-04 03:36:05 29 4
gpt4 key购买 nike

在 Windows 10 上,日志记录模块发送此错误(使用 scrapy)

# --- Logging error ---
...
# UnicodeEncodeError: 'charmap' codec can't encode characters in position 175-176: character maps to <undefined>

我已阅读我应该添加 encoding='utf-8'但我没有找到如何在下面的代码中添加它。编辑:根据 the tuto它不是必需的。
configure_logging(install_root_handler=False) #override default log settings
logging.basicConfig(
filename='logfile.log',
format='%(levelname)s: %(message)s',
datefmt='%m-%d %H:%M',
level=logging.INFO #CRITICAL ERROR WARNING INFO DEBUG NOTSET
)

我发现了很多关于这些主题的问题,但主要是关于 python 2(或 not related to the logging module)。日志教程甚至不谈论 utf-8。 (请注意,我可以毫无问题地打印 UTF8 字符。问题仅出现在日志记录模块上)

最佳答案

我没有使用 Scrapy但是我遇到了与 Vanilla Python 3.6 日志记录相同的问题,即无法通过 logging 写入 UTF-8 字符到一个文件(控制台工作得很好)。

基于 this comment我添加了 'utf-8'给我的FileHandler初始化。我正在通过 INI 文件配置日志记录,所以它看起来像这样:

[handler_file]
class = FileHandler
args = (r'log.txt', 'a', 'utf-8')
level = NOTSET
formatter = generic

使用 logging.basicConfig()我认为你应该能够做到以下几点:
configure_logging(install_root_handler=False) #override default log settings
logging.basicConfig(
handlers=[logging.FileHandler('logfile.log', 'w', 'utf-8')],
format='%(levelname)s: %(message)s',
datefmt='%m-%d %H:%M',
level=logging.INFO #CRITICAL ERROR WARNING INFO DEBUG NOTSET
)

关于python-3.x - python 3.6 *记录模块错误* UnicodeEncodeError : 'charmap' codec can't encode characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46636206/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com