小编典典

使 Python 记录器将除日志文件之外的所有消息输出到标准输出

all

除了
应该去的日志文件之外,有没有办法使用logging模块自动将内容输出到标准输出?例如,我希望所有对、、的调用都去到他们想要的地方,但另外总是被复制到。这是为了避免重复消息,例如:
__logger.warning``logger.critical``logger.error``stdout

mylogger.critical("something failed")
print "something failed"

阅读 117

收藏
2022-03-07

共1个答案

小编典典

所有日志记录输出都由处理程序处理;只需将 a
添加logging.StreamHandler()到根记录器即可。

这是一个配置流处理程序(使用stdout而不是 default stderr)并将其添加到根记录器的示例:

import logging
import sys

root = logging.getLogger()
root.setLevel(logging.DEBUG)

handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
root.addHandler(handler)
2022-03-07