Python Glossary English

все 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Сообщить о неточности