【发布时间】:2018-11-28 23:37:11
【问题描述】:
所以,我相信这个问题可以应用于任何生成日志到控制台的 python 文件。
我正在尝试捕获运行行为测试时生成的输出(所有代码都在 python3.x 中)。
或者更准确地说:我正在尝试将实时生成的控制台输出捕获到文件中,以获取 Python 代码中感兴趣的特定功能。
我的目标是在遇到 python 代码中的特定函数时捕获打印的控制台日志(stdout)。
我通常在 Ubuntu 18.04 上使用不带引号的 behave data_base_scenarios.feature。
我想捕获完整的输出,因为它被定向到控制台以归档。
在StackOverflow上,搜索了一段时间后,我尝试了这里描述的一些方法:Capturing stdout within the same process in Python。我还发现了这个:https://capturer.readthedocs.io/en/latest/
不幸的是,我没有看到任何被捕获的东西。
我已经注意设置行为环境来生成日志。例如,所有这些标志都被适当且明确地设置为生成输出:
context.config.stdout_capture = True,context.config.log_capture = True。
我在行为环境中缺少什么。
Behave 框架还在“上下文”中提供了一个变量。它的“context.stdout_capture”。但不幸的是,它什么都没有。
简而言之,在控制台上进行行为打印
Captured logging:
INFO:database.system.status: MyDatabase is online.
INFO:database.system.status: MyDatabase is now offline.
INFO:database.system.status: MyDatabase has now initiated.
我只想将上面的“Captured Logging”控制台输出转储到文件中进行分析。
我该怎么做?请告诉我。
【问题讨论】:
标签: python file-io console stdout python-behave