我正在寻找一种方法,仅当 Django 测试以高冗长级别运行时才写入控制台。 例如 - 当我运行时
python manage.py test -v 3
它会将我的消息记录到控制台,但是,当我运行时
python manage.py test -v 0
它不会记录我的消息。
我尝试在代码中使用 logger.info()
但消息根本没有显示。
有什么建议吗?
最佳答案
-v
控制测试运行器本身的详细程度(例如:数据库创建等),而不是应用日志记录的详细程度。
您真正想要的是更改 Django 应用程序本身的日志记录级别,如 logging documentation 中所述。 .
您可能只想为测试覆盖日志记录设置,或者您可以使用 --debug-mode
将 settings.DEBUG
设置为 True
,并在您的 settings.py 中包含特定于 DEBUG 的配置(这很常见,因为它在开发时也有帮助)。
这是如何实现后者的基本示例:
'loggers': {
'': {
'handlers': ['console', 'sentry'],
'level': 'INFO',
},
'myapp': {
'level': 'DEBUG' if DEBUG else 'INFO',
'propagate': True,
},
}
关于python - 详细记录 Django 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37729901/