在Django测试中使用详细日志记录

8

我希望找到一种方法,在Django测试运行时只在高详细级别下写入控制台。例如,当我运行

python manage.py test -v 3

它会将我的消息记录到控制台,但是当我运行时

python manage.py test -v 0

它没有记录我的消息。

我尝试在代码中使用logger.info(),但消息根本没有显示出来。

有什么建议吗?

1个回答

2

-v参数控制测试运行器本身的详细程度(例如:数据库创建等),而不是您应用程序的日志记录的详细程度。

实际上,您需要做的是更改django应用程序本身的日志记录级别,如日志记录文档中所述。

您可能只想简单地覆盖测试的日志记录设置,或者可以使用--debug-modesettings.DEBUG设置为True,并在您的settings.py中包含一个DEBUG特定的配置(这是相当常见的,因为它也有助于开发)。

以下是如何实现后者的基本示例:

'loggers': {
    '': {
        'handlers': ['console', 'sentry'],
        'level': 'INFO',
    },
    'myapp': {
        'level': 'DEBUG' if DEBUG else 'INFO',
        'propagate': True,
    },
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接