gpt4 book ai didi

python - 我们可以对不同的记录器使用相同的处理程序吗

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:33 24 4
gpt4 key购买 nike

是否建议在 Python 中对不同的记录器使用相同的处理程序。例如:

logger = logging.getLogger('sth')
logger.setLevel(logging.DEBUG)
handler = logging.StreamHandler()
formatter = logging.Formatter('[%(levelname)1.1s %(asctime)s %(funcName)s:%(lineno)d] - %(message)s', '%y%m%d %H:%M:%S')
handler.setFormatter(formatter)
handler.setLevel(logging.DEBUG)
logger.addHandler(handler)
logger.propagate = False

logging.getLogger().addHandler(handler)
logging.getLogger().setLevel(logging.DEBUG)

我在这里设置了两个记录器,一个名为“sth”,另一个是根记录器。我将相同的处理程序分配给两个记录器。到目前为止,我的使用情况似乎还不错,但我想知道是否有任何陷阱

最佳答案

您通常最好将处理程序添加到需要它们的最高级别记录器。在您的示例中,您可以通过仅将处理程序添加到根记录器而不将 sth 记录器上的 propagate 标志设置为 False< 来实现相同的效果.

将相同的处理程序添加到多个记录器应该没有坏处,但如果不禁用传播,可能会导致消息在日志中重复。

许多应用程序只是将处理程序添加到根记录器,让传播处理其余部分,其他应用程序仅为了特定要求而将额外的处理程序添加到非根记录器。

关于python - 我们可以对不同的记录器使用相同的处理程序吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305281/

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