Я пытаюсь написать регистратор в Python, но методу .setLevel
, похоже, все равно, какой уровень ведения журнала я ему передаю. Вот минимально воспроизводимый пример:
import logging
logger = logging.getLogger("test")
logger.setLevel(logging.DEBUG)
logger.debug("debug")
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critical")
Вывод:
warning
error
critical
Как показано, я установил уровень моего объекта logger
на DEBUG
, но пока только сообщения с уровнями WARNING
и выше выдаются.
Из документации of setLevel
:
Устанавливает порог для этого регистратора на уровень. Сообщения журнала, которые менее серьезны, чем уровень, будут игнорироваться; сообщения журнала с уровнем серьезности или выше будут выдаваться обработчиком или обработчиками, обслуживающими это средство ведения журнала, если только уровень обработчика не был установлен на более высокий уровень серьезности, чем уровень.
В моем коде я вызывается setLevel
, чтобы установить уровень данного объекта регистратора c, чтобы он соблюдал этот уровень. Каково объяснение такого поведения?
Я рассмотрел следующие вопросы о переполнении стека, и ни одно из решений не применимо к моему случаю.
Python регистратор не соблюдает setLevel?
python ведение журнала: setLevel () регистратора не применяется?
Я использую CPython 3.8.2