xis*_*xis 2 python logging module
我有以下代码:
#! /usr/bin/python
import logging
import test_log
def main():
logging.error("hello")
if __name__ == '__main__':
logging.basicConfig()
main()
Run Code Online (Sandbox Code Playgroud)
其中test_log定义为:
import logging
_logger = logging.getLogger(__name__)
_logger.warn('initializing ' + __name__)
Run Code Online (Sandbox Code Playgroud)
执行主脚本将导致输出:
No handlers could be found for logger "test_log"
ERROR:root:hello
Run Code Online (Sandbox Code Playgroud)
我相信是因为该import test_log语句会执行_logger = logging.getLogger(__name__); _logger.warn('initializing ' + __name__),而此时logging.basicConfig并未执行。有办法解决这个问题吗?
如果您无法避免在导入时进行日志记录,请NullHandler在 中向记录器添加一个实例test_log。这将防止出现“无处理程序...”消息。
此外,您还两次致电basicConfig(). 避免这种情况 - 仅进行一次调用(在 中if __name__ == '__main__')。