如何在python中删除最后一个日志记录对象



考虑:

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 = []以获得所需的结果。关闭不会重置日志记录系统,它只是为退出而对其进行清理。

最新更新