我有以下代码:
#! /usr/bin/python
import logging
import test_log
def main():
logging.error("hello")
if __name__ == '__main__':
logging.basicConfig()
main()
test_log
定义为:
import logging
_logger = logging.getLogger(__name__)
_logger.warn('initializing ' + __name__)
执行主脚本将导致输出:
No handlers could be found for logger "test_log"
ERROR:root:hello
我认为这是因为import test_log
语句将执行_logger = logging.getLogger(__name__); _logger.warn('initializing ' + __name__)
,而此时logging.basicConfig
未执行。有没有办法解决这个问题?
答案 0 :(得分:3)
如果您无法避免在导入时记录,请在test_log
中的记录器中添加NullHandler
实例。这将阻止“无处理程序......”消息。
此外,您有两次拨打basicConfig()
。避免这种情况 - 只需拨打一个电话(if __name__ == '__main__'
)。