Подтвердить что ты не робот

Определяет, установлен ли корневой журнал на уровень DEBUG в Python?

Если я установил модуль регистрации в DEBUG с параметром командной строки следующим образом:

if (opt["log"] == "debug"):
  logging.basicConfig(level=logging.DEBUG)

Как я могу позже сказать, был ли logger установлен в DEBUG? Я пишу декоратора, который будет время функции, если True флаг будет передан ему, и если флаг не указан, он по умолчанию для печати информации о времени, когда корневой журнал установлен в DEBUG.

4b9b3361

Ответ 2

На самом деле, есть одно лучшее: используйте код logging.getLogger().isEnabledFor(logging.DEBUG). Я нашел это, пытаясь понять, что делать с результатом getEffectiveLevel().

Ниже приведен код, который использует сам модуль регистрации.

def getEffectiveLevel(self):
    """
    Get the effective level for this logger.

    Loop through this logger and its parents in the blogger hierarchy,
    looking for a non-zero logging level. Return the first one found. 
    """
    logger = self
    while logger:
        if logger.level:
            return logger.level
        logger = logger.parent
    return NOTSET

def isEnabledFor(self, level):
    """
    Is this logger enabled for level ‘level?
    """
    if self.manager.disable >= level:
        return 0
    return level >= self.getEffectiveLevel()

Ответ 3

Просто

logging.getLogger().level == logging.DEBUG