如何在python中破坏最后一个日志对象
考虑:如何在python中破坏最后一个日志对象,python,python-3.x,logging,Python,Python 3.x,Logging,考虑: 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, for
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
我的观点是,在第二个函数中,我希望有一个具有新格式的新日志记录对象,但它是第一个具有其格式的函数日志记录对象。Add
logging.getLogger().handlers=[]
在foo的末尾,以获得所需的结果。关机不会重置日志记录系统,它只是在退出时对其进行清理。我不确定您是否可以这样做。尝试将force=True
添加到basicConfig
中,但shutdown
特别警告应在应用程序退出时调用此命令,并且在调用后不应再使用日志系统。关于shutdown
:“通过冲洗和关闭所有处理程序,通知日志记录系统执行有序关机。这应该在应用程序退出时调用,并且在此调用之后不应再使用日志系统。”