Скажем, у меня есть следующий код:
import logging
import logging.handlers
a = logging.getLogger('myapp')
h = logging.handlers.RotatingFileHandler('foo.log')
h.setLevel(logging.DEBUG)
a.addHandler(h)
# The effective log level is still logging.WARN
print a.getEffectiveLevel()
a.debug('foo message')
a.warn('warning message')
Я ожидаю, что установка logging.DEBUG
на обработчике заставит сообщения отладочного уровня быть записаны в файл журнала. Тем не менее, это печатает 30 для эффективного уровня (равный logging.WARNING
, по умолчанию) и только регистрирует сообщение warn
в файле журнала, а не отладочное сообщение.
Похоже, что уровень журнала обработчика падает на пол, например. он молча игнорируется. Что заставляет меня задаться вопросом, почему вообще есть setLevel
на обработчике?