向logging.basicConfig添加编码参数

2022-09-28 20:35:29 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将encoding参数添加到^{}

我发现this bug report声明现在Python 3.3可以做到这一点。对于Python2.7我需要这个,错误报告说要使用一个定制的^{}对象,但是我不能让它工作。


Tags: 对象report声明参数thisbugencoding错误报告
2条回答
网友
1楼 ·

在您的案例中,避免使用basicConfig()会更容易一些-只需创建处理程序并以编程方式添加它(确保代码只运行一次),例如:

root_logger= logging.getLogger()
root_logger.setLevel(logging.DEBUG) # or whatever
handler = logging.FileHandler('test.log', 'w', 'utf-8') # or whatever
handler.setFormatter(logging.Formatter('%(name)s %(message)s')) # or whatever
root_logger.addHandler(handler)

这或多或少是basicConfig()所做的。

更新:从Python 3.9开始(仍在开发中),basicConfig()应该有encodingerrors关键字可用。

网友
2楼 ·

Vinay的回答很有帮助,但为了让它正常工作,我不得不调整语法:

root_logger= logging.getLogger()
root_logger.setLevel(logging.DEBUG) # or whatever
handler = logging.FileHandler('test.log', 'w', 'utf-8') # or whatever
formatter = logging.Formatter('%(name)s %(message)s') # or whatever
handler.setFormatter(formatter) # Pass handler as a parameter, not assign
root_logger.addHandler(handler)