考虑:
import logging
In [6]: def foo():
...: logging.basicConfig(level=logging.WARNING)
...: logging.warning("logging message 1")
...: logging.shutdown()
...: def bar():
...: logging.basicConfig(level=logging.WARNING, format="%(asctime)-15s %(
...: levelname)-8s %(message)s")
...: logging.warning("logging message 2")
...:
In [7]: foo()
WARNING:root:logging message 1
In [8]: bar()
WARNING:root:logging message 2
但我希望看到:
In [7]: foo()
WARNING:root:logging message 1
In [8]: bar()
2020-02-29 01:42:54,995 WARNING logging message 2
我的观点是,在第二个函数中,我希望有新格式的新日志记录对象,但这是第一个使用其格式的函数日志记录对象。
在foo的末尾添加logging.getLogger().handlers = []
以获得所需的结果。关闭不会重置日志记录系统,它只是为退出而对其进行清理。