添加什么到 python-behave 来创建日志文件?
What add to python-behave to create logging file?
当我使用 behave 时,日志记录在我的程序中不起作用。仅当我 运行 此程序作为 python 程序时,此代码才有效并创建日志 file_results_q.log。
当我使用 behave 时,我可以在 windows PowerShell 中看到 "test test",但没有创建日志 file_results_q.log。
我在 Windows PowerShell 中使用“--no-logcapture”来 运行 表现
代码:
import logging
logging.basicConfig(filename=r"D:\test\testy\logfile_results_q.log")
logging.info("test")
@given('project folder path: / {solver_name}')
def step_impl(context, solver_name):
logging.info("test test")
我应该向这段代码添加什么,才能正确处理日志记录?
logging.basicConfig
正在配置根记录器。更好的是,创建您自己的记录器:
logger = logging.getLogger('logfile_results_q')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler(r"D:\test\testy\logfile_results_q.log")
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
logger.info("test")
请注意 logger.info()
,而不是 logging.info()
有关更多示例,请参阅 Logging Cookbook 页面。
python-behave 日志记录会覆盖您的基本配置。导入包时也是如此。最好指定自己的记录器。请参阅@ababak 或官方文档的答案:
https://docs.python.org/3/howto/logging.html
(搜索 'Configuring Logging')
日志模块有一个不为人知的 "feature"。
logging.basicConfig(...)
只能调用一次(如果你不破解模块)。对 logging.basicConfig(...)
的第二次调用被忽略,因为日志记录模块已经设置。
因此,behave需要设置日志模块,否则其他配置方面将无法工作。如果您尝试自己做,日志记录模块(和行为)"bites you".
另请参见:
- Example: Setup logging with behave by using a config-file
- 行为:
features/logging.*.feature
、features/logcapture.*.feature
当我使用 behave 时,日志记录在我的程序中不起作用。仅当我 运行 此程序作为 python 程序时,此代码才有效并创建日志 file_results_q.log。
当我使用 behave 时,我可以在 windows PowerShell 中看到 "test test",但没有创建日志 file_results_q.log。
我在 Windows PowerShell 中使用“--no-logcapture”来 运行 表现
代码:
import logging
logging.basicConfig(filename=r"D:\test\testy\logfile_results_q.log")
logging.info("test")
@given('project folder path: / {solver_name}')
def step_impl(context, solver_name):
logging.info("test test")
我应该向这段代码添加什么,才能正确处理日志记录?
logging.basicConfig
正在配置根记录器。更好的是,创建您自己的记录器:
logger = logging.getLogger('logfile_results_q')
logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages
fh = logging.FileHandler(r"D:\test\testy\logfile_results_q.log")
fh.setLevel(logging.DEBUG)
logger.addHandler(fh)
logger.info("test")
请注意 logger.info()
,而不是 logging.info()
有关更多示例,请参阅 Logging Cookbook 页面。
python-behave 日志记录会覆盖您的基本配置。导入包时也是如此。最好指定自己的记录器。请参阅@ababak 或官方文档的答案:
https://docs.python.org/3/howto/logging.html
(搜索 'Configuring Logging')
日志模块有一个不为人知的 "feature"。
logging.basicConfig(...)
只能调用一次(如果你不破解模块)。对 logging.basicConfig(...)
的第二次调用被忽略,因为日志记录模块已经设置。
因此,behave需要设置日志模块,否则其他配置方面将无法工作。如果您尝试自己做,日志记录模块(和行为)"bites you".
另请参见:
- Example: Setup logging with behave by using a config-file
- 行为:
features/logging.*.feature
、features/logcapture.*.feature