我试图为我的项目的不同子包提供不同的处理程序,但是,当我添加一个控制台(即StreamHandler到stdout)时,由于某种原因,鼻子没有捕获任何正在进行的日志记录输出到那个处理程序。
我没有任何特殊的鼻子配置,除了对于每个单元测试我都将记录器加载为logging.getLogger(__name__)
并通过logging.dictConfig
设置记录的配置。
所以简短来说:
--nologcapture
应显示所有日志记录--nologcapture
或如果你想要更多的背包,请告诉我。
答案 0 :(得分:0)
我强烈建议使用logging_tree来调试所有记录器的结构。只需添加from logging_tree import printout; printout()
即可在控制台打印输出之前查看日志记录结构。
答案 1 :(得分:0)
我也遇到了这个问题。
nose
在测试之前清除记录器,dictConfig
覆盖所有记录器配置。
这意味着,如果在初始化测试后调用dictConfig
,则在鼻子调整日志记录后应用配置。
这种情况可能比您预期的发生得更多。导入会导致记录器配置重新初始化,并且外部库也可能会使用记录器。
使用basicConfig
时这不是问题,因为basicConfig
不会像dictConfig
那样使现有记录器超载。
由于nose
(和nose2
在较小程度上)的发展放缓,我最终决定切换到pytest
。它在捕获日志记录输出方面做得更好。