当Pyramid应用程序中主记录器的调试级别设置为DEBUG时,transaction会喷出许多毫无意义的调试消息。

在Nosetests中,我可以这样禁用它:

from transaction._compat import get_thread_ident

txn_logger = logging.getLogger("txn.%d" % get_thread_ident())
txn_logger.setLevel(logging.WARN)


但是,在Pyramid应用程序中,基础结构向每个HTTP请求添加“作用域会话”,这显然意味着get_thread_ident()每次都不同。

是否有某种方法可以全局禁用该功能,而无需在每个金字塔视图中重复以上操作?

最佳答案

只需在日志配置中关闭txn父日志的日志记录即可。

[loggers]
keys = transactions, ...

[logger_transactions]
level = WARN
handlers =
qualname = txn

10-07 21:08