Ответ 1
logging.getLogger().getEffectiveLevel()
logging.getLogger()
без аргументов получает регистратор уровня корня.
http://docs.python.org/library/logging.html#logging.Logger.getEffectiveLevel
Если я установил модуль регистрации в DEBUG с параметром командной строки следующим образом:
if (opt["log"] == "debug"):
logging.basicConfig(level=logging.DEBUG)
Как я могу позже сказать, был ли logger установлен в DEBUG? Я пишу декоратора, который будет время функции, если True флаг будет передан ему, и если флаг не указан, он по умолчанию для печати информации о времени, когда корневой журнал установлен в DEBUG.
logging.getLogger().getEffectiveLevel()
logging.getLogger()
без аргументов получает регистратор уровня корня.
http://docs.python.org/library/logging.html#logging.Logger.getEffectiveLevel
На самом деле, есть одно лучшее: используйте код 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()
Просто
logging.getLogger().level == logging.DEBUG