在manage.py测试期间禁用日志记录?

Eri*_*arr 7 python django logging

我使用标准的python日志记录模块.当我打电话时,python manage.py test我想在所有测试运行之前禁用日志记录.是否有信号或其他类型的钩子我可以用来调用logging.disable?或者还有其他方法可以在python manage.py test运行时禁用日志记录吗?

Rma*_*att 12

实际上有一个更好的方法,django-nose有一个kwarg:

赶紧跑:

./bin/manage.py test --logging-clear-handlers
Run Code Online (Sandbox Code Playgroud)


Dic*_*ick 9

作为一种简单的替代方法,您可以在设置文件中运行测试时禁用日志记录,如下所示:

if 'test' in sys.argv:
    logger.removeHandler(handler)
    logger.setLevel(logging.ERROR)
Run Code Online (Sandbox Code Playgroud)


Sco*_*t A 6

我用过的最容易的东西:

import logging

class MyTestClass(TestCase):
    def setUp(self):
        logging.disable(logging.CRITICAL)
Run Code Online (Sandbox Code Playgroud)

这不需要编辑,修补,额外安装等.所有日志记录都完全关闭.


Ale*_*lli 2

我知道的唯一方法是编辑manage.py自身......当然不是很优雅,但至少它应该让你到达你需要的地方。