Wenn ich das Protokollierungsmodul mit einem Befehlszeilenparameter wie diesem auf DEBUG setze:
if (opt["log"] == "debug"):
logging.basicConfig(level=logging.DEBUG)
Wie kann ich später feststellen, ob der Logger auf DEBUG eingestellt war? Ich schreibe einen Dekorateur, der eine Funktion zeitlich festlegt, wenn das True-Flag an ihn übergeben wird. Wenn kein Flag angegeben wird, werden standardmäßig Zeitinformationen gedruckt, wenn der Root-Logger auf DEBUG gesetzt ist.
Antworten:
logging.getLogger()
ohne Argumente erhält der Root Level Logger.http://docs.python.org/library/logging.html#logging.Logger.getEffectiveLevel
quelle
logging.getLevelName(logging.getLogger().getEffectiveLevel())
. Es wäre schön, eine einfachere Syntax zu haben, wenn Sie nur die Zeichenfolge für die aktuelle Ebene wünschen.Eigentlich gibt es eines besser: Verwenden Sie den Code
logging.getLogger().isEnabledFor(logging.DEBUG)
. Ich habe es gefunden, als ich versucht habe zu verstehen, was ich mit dem Ergebnis von anfangen sollgetEffectiveLevel()
.Unten finden Sie den Code, den das Protokollierungsmodul selbst verwendet.
quelle
Gerade
quelle