Python Glossary English

все Python 3loggingпонятие

logging.Logger

логгеры

Класс логгера: через его методы debug(), info(), warning() программа пишет лог. Экземпляры получают через getLogger(), а не конструктором.

Синтаксис

logger = logging.getLogger(name); logger.setLevel(level); logger.info(msg, *args)

Logger('x') создаёт сироту вне иерархии: у него нет родителя, он не видит обработчиков корневого логгера и не совпадает с getLogger('x'). Уровень логгера и уровень обработчика — два разных сита: запись должна пройти оба, поэтому setLevel(DEBUG) у логгера ничего не покажет, если у обработчика выставлен уровень выше (новый обработчик имеет уровень NOTSET и пропускает всё). propagate=False обрывает всплытие к предкам — так лечат задвоение строк.

Примеры

import logging
a = logging.getLogger('app')
print(a is logging.getLogger('app'), logging.Logger('app') is a)  # → True False
print(logging.Logger('app').parent)  # → None
import logging, sys
log = logging.getLogger('app')
h = logging.StreamHandler(sys.stdout)
h.setLevel(logging.INFO)
log.addHandler(h)
log.setLevel(logging.DEBUG)
log.debug('не видно: отсеял обработчик')
log.info('видно')  # → видно
print(log.getEffectiveLevel())  # → 10

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности