Se eu definir o módulo de registro para DEBUG com um parâmetro de linha de comando como este:
if (opt["log"] == "debug"):
logging.basicConfig(level=logging.DEBUG)
Como posso saber mais tarde se o logger foi definido como DEBUG? Estou escrevendo um decorador que cronometrará uma função se o sinalizador True for passado para ela, e se nenhum sinalizador for fornecido, o padrão é imprimir informações de tempo quando o logger raiz é definido como DEBUG.
Respostas:
logging.getLogger()
sem argumentos obtém o logger de nível raiz.http://docs.python.org/library/logging.html#logging.Logger.getEffectiveLevel
fonte
logging.getLevelName(logging.getLogger().getEffectiveLevel())
. Seria bom ter uma sintaxe mais simples quando tudo o que você deseja é a string para o nível atual.Na verdade, há um melhor: use o código
logging.getLogger().isEnabledFor(logging.DEBUG)
. Eu descobri enquanto tentava entender o que fazer com o resultado degetEffectiveLevel()
.Abaixo está o código que o próprio módulo de registro usa.
fonte
Somente
fonte