Как я могу уничтожить последний объект журнала в python - PullRequest
0 голосов
/ 29 февраля 2020

Рассмотрим:

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

Моя точка зрения заключается в том, что во второй функции я ожидаю получить новый объект регистрации в новом формате, но это первый объект, регистрирующий функцию в своем формате.

1 Ответ

0 голосов
/ 02 марта 2020

Добавьте logging.getLogger().handlers = [] в конце foo, чтобы получить желаемый результат. Выключение не сбрасывает систему регистрации, оно просто очищает ее для выхода.

...