nosetests: --nologcapture 仍然捕获 INFO 消息
nosetests: --nologcapture still captures INFO messages
用代码
import unittest
import logging
class LoggingTest(unittest.TestCase):
def test_that_logs(self):
logging.warning("Hello")
logging.info("World")
for a in xrange(100000000000000000):
pass
我得到了这个意外的输出:
$ nosetests --version
nosetests version 1.3.7
$ nosetests log_from_nosetest.py --nocapture --nologcapture
WARNING:root:Hello
^C
----------------------------------------------------------------------
Ran 1 test in 105.376s
OK
可见。打印了 WARNING 日志级别消息,但不打印 INFO 级别的消息。
我试过使用 --logging-level
setting 但没有成功。
好像少了一个功能。如果设置了 --nologcapture,nose 会简单地忽略所有日志记录设置,例如--logging-level 根本不使用。您可以使用
来补救
logging.basicConfig(level=logging.INFO)
在您的代码中 - 不确定这是否是您想要的,因为这种设置根本不应该在库代码中。不过在测试设置中会很好。
这是因为默认的日志级别是警告。用
设置
logging.getLogger('').setLevel(logging.INFO)
用代码
import unittest
import logging
class LoggingTest(unittest.TestCase):
def test_that_logs(self):
logging.warning("Hello")
logging.info("World")
for a in xrange(100000000000000000):
pass
我得到了这个意外的输出:
$ nosetests --version
nosetests version 1.3.7
$ nosetests log_from_nosetest.py --nocapture --nologcapture
WARNING:root:Hello
^C
----------------------------------------------------------------------
Ran 1 test in 105.376s
OK
可见。打印了 WARNING 日志级别消息,但不打印 INFO 级别的消息。
我试过使用 --logging-level
setting 但没有成功。
好像少了一个功能。如果设置了 --nologcapture,nose 会简单地忽略所有日志记录设置,例如--logging-level 根本不使用。您可以使用
来补救logging.basicConfig(level=logging.INFO)
在您的代码中 - 不确定这是否是您想要的,因为这种设置根本不应该在库代码中。不过在测试设置中会很好。
这是因为默认的日志级别是警告。用
设置logging.getLogger('').setLevel(logging.INFO)