我希望找到一种方法,在Django测试运行时只在高详细级别下写入控制台。例如,当我运行
python manage.py test -v 3
它会将我的消息记录到控制台,但是当我运行时
python manage.py test -v 0
它没有记录我的消息。
我尝试在代码中使用logger.info()
,但消息根本没有显示出来。
有什么建议吗?
-v
参数控制测试运行器本身的详细程度(例如:数据库创建等),而不是您应用程序的日志记录的详细程度。
实际上,您需要做的是更改django应用程序本身的日志记录级别,如日志记录文档中所述。
您可能只想简单地覆盖测试的日志记录设置,或者可以使用--debug-mode
将settings.DEBUG
设置为True
,并在您的settings.py中包含一个DEBUG特定的配置(这是相当常见的,因为它也有助于开发)。
以下是如何实现后者的基本示例:
'loggers': {
'': {
'handlers': ['console', 'sentry'],
'level': 'INFO',
},
'myapp': {
'level': 'DEBUG' if DEBUG else 'INFO',
'propagate': True,
},
}