gpt4 book ai didi

python - 禁用特定包的日志记录

转载 作者:太空狗 更新时间:2023-10-30 00:12:06 28 4
gpt4 key购买 nike

我正在我的应用程序中实现 python 日志记录,我希望能够利用“默认”根设置。我想使用根设置,因为我不想在配置文件中为每个模块定义一个记录器。

当我为根记录器打开 DEBUG 级别的日志记录时,我遇到了 QPID Python 客户端 API 的问题。我的日志文件充斥着 qpid 调试语句:

2011-03-16 09:16:18,664 - qpid.messaging.io.ops - DEBUG - SENT[8de6b2c]: ..

2011-03-16 09:16:18,667 - qpid.messaging.io.raw - DEBUG - ..

2011-03-16 09:16:18,668 - qpid.messaging.io.raw - DEBUG - READ[8de6b2c]: ..

2011-03-16 09:16:18,668 - qpid.messaging.io.ops - DEBUG - ..

等等

所以两个主要问题:

1) 有没有办法只为我的模块启用*日志记录,而无需为每个模块定义记录器?换句话说,有没有一种方法可以执行共享的“记录器设置”,所以不必为每个记录器定义一个 logger_ 部分,有没有一种方法可以默认设置?

类似于:

[logger_shared_settings]
loggers = logger_A,logger_B,logger_C,logger_D
level=DEBUG

2) 或者如何通过配置文件过滤掉 qpid 包日志记录?

这是 log.conf 文件:

[loggers]
keys=root

[handlers]
keys=consoleHandler,fileHandler,nullHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=DEBUG
handlers=consoleHandler,fileHandler

[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)

[handler_fileHandler]
class=logging.handlers.RotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('out.log',)

这是我试图避免的:

[loggers]
keys=root, a, b, c, d

[handlers]
keys=consoleHandler,fileHandler,nullHandler

[formatters]
keys=simpleFormatter

[logger_root]
level=ERROR
handlers=nullHandler


[logger_a]
level=DEBUG
handlers=consoleHandler,fileHandler


[logger_b]
level=DEBUG
handlers=consoleHandler,fileHandler

[logger_c]
level=DEBUG
handlers=consoleHandler,fileHandler

最佳答案

使用 python2.7 你可以将 NullHandler 设置为 qpid 记录器:

[logger_qpid]
level=NOTSET
handlers=nullHandler
qualname=qpid
propagate=0

关于python - 禁用特定包的日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5326012/

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