все Python 3loggingпонятие
logging.NullHandler
обработчики
Обработчик, который ничего не делает. Его вешает библиотека на свой логгер, чтобы не навязывать приложению вывод.
Синтаксис
logging.getLogger('mylib').addHandler(logging.NullHandler())
Если в цепочке логгеров нет ни одного обработчика, logging выводит WARNING и выше в stderr через запасной lastResort; NullHandler считается обработчиком и это отключает. Поэтому вешают его только на логгер своей библиотеки и никогда на корневой — иначе приложение потеряет все предупреждения. Записи, всплывающие к корню, он не останавливает: настроенные приложением обработчики их по-прежнему получат.
Примеры
import logging
lib = logging.getLogger('mylib')
print(lib.hasHandlers()) # → False — сработал бы lastResort
lib.addHandler(logging.NullHandler())
print(lib.hasHandlers()) # → True
lib.warning('в stderr ничего не попадёт')
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности