gpt4 book ai didi

python testfixtures.LogCapture 不捕获日志

转载 作者:行者123 更新时间:2023-11-28 19:20:25 27 4
gpt4 key购买 nike

我在 python 中有一个多模块包。其中一个模块本质上是一个命令行应用程序。我们将其称为“顶级”模块。另一个模块中有三个类,它们本质上是应用程序的后端。

顶层模块,在它的类的初始化中,执行 logging.basicConfig 以将调试记录到文件中,然后为信息及以上添加控制台记录器。后端类只使用 getLogger(classname),因为当应用程序完全运行时,后端将被顶层命令行前端调用,因此日志记录已经配置好了。

在 Test 类中(从 unittest.TestCase 子类并通过 nose 运行),我只是在设置中运行 testfixtures.LogCapture(),在 tearDown 中运行 testfixtures.LogCapture.uninstall_all(),所有日志记录都被捕获得很好,不费吹灰之力。

在后端测试文件中,我尝试做同样的事情。我在设置中运行 testfixtures.LogCapture,在拆解中运行 uninstall_all。但是,当我为后端运行单元测试时,所有“INFO”级别的日志消息仍然会打印出来。

任何帮助

1) 为什么日志抓取对前端有效,对后端无效

2) 一种优雅的方式,可以在我的后端类中记录和捕获日志,而无需在这些文件中显式设置日志记录。

会很棒。

最佳答案

我在重新配置 Logger 时通过将“disable_existing_loggers”设置为 False 解决了同样的问题:之前的记录器被禁用并且阻止它向 RootLogger 传播日志。

关于python testfixtures.LogCapture 不捕获日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532824/

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