记录未在行为步骤中捕获

时间:2016-09-09 01:54:56

标签: python logging bdd python-behave

好的,在我的environment.py文件中,我可以通过以下方式记录内容:

logging.basicConfig(level=logging.DEBUG, filename="example.log")

def before_feature(context, feature):
    logging.info("test logging")

但是当我在步骤文件中时,我无法执行日志记录:

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

@given("we have a step")
def step_impl(context):
    logger.debug("Test logging 2")

步骤中的日志消息未显示。我正在使用python行为模块。有什么想法吗?

我在运行行为时尝试启用和禁用logcapture,但它没有任何区别。

2 个答案:

答案 0 :(得分:1)

对我有用的东西

behave --no-capture --no-capture-stderr --no-logcapture

并添加环境。py如下所示:

    def after_step(context, step):
        print("")

为什么:我发现行为无法记录步骤的最后一个打印语句。因此,我只是在每个步骤之后都添加了一个空白打印。

希望有帮助

答案 1 :(得分:0)

在步骤.py中从environment.py导入日志记录为我解决了问题。

from features.environment import logging

我不确定,但是我想问题是每次导入日志记录时都会重写以前的配置,因为disable_existing_loggers默认为True。 (Here是说明这一点的文档段落)