我已经使用下面的代码设置了一个记录器:
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handler = logging.FileHandler(filename='application.log', mode='a+')
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
每当我尝试写入日志时,请使用以下代码:
logger.info("Application Started")
我得到以下回溯:
--- Logging error ---
Traceback (most recent call last):
File "/usr/lib/python3.7/logging/__init__.py", line 985, in emit
stream.write(msg)
TypeError: a bytes-like object is required, not 'str'
Call stack:
File "/home/<user>/Code/<app_name>/src/<app_name>.py", line 48, in <module>
main()
File "/home/<user>/Code/<app_name>/src/<app_name>.py", line 42, in main
logger.info("Application Started")
Message: 'Application Started'
Arguments: ()
我知道,鉴于上述例外情况,您会希望文件以二进制模式打开,但事实并非如此,我只使用“a+”模式打开。
更新 我已经尝试将 encoding='utf-8' 与 mode='a+t' 一起添加到文件处理程序中,并根据下面评论中的建议删除命名参数文件名,但无济于事。
隔江千里
相关分类