Si je règle le module de journalisation sur DEBUG avec un paramètre de ligne de commande comme celui-ci:
if (opt["log"] == "debug"):
logging.basicConfig(level=logging.DEBUG)
Comment puis-je savoir plus tard si l'enregistreur a été réglé sur DEBUG? J'écris un décorateur qui chronométrera une fonction si l'indicateur True lui est passé, et si aucun indicateur n'est donné, il affiche par défaut les informations de synchronisation lorsque l'enregistreur racine est défini sur DEBUG.
Réponses:
logging.getLogger()
sans arguments obtient le journal de niveau racine.http://docs.python.org/library/logging.html#logging.Logger.getEffectiveLevel
la source
logging.getLevelName(logging.getLogger().getEffectiveLevel())
. Ce serait bien d'avoir une syntaxe plus simple quand tout ce que vous voulez, c'est la chaîne du niveau actuel.En fait, il y a mieux: utilisez le code
logging.getLogger().isEnabledFor(logging.DEBUG)
. Je l'ai trouvé en essayant de comprendre quoi faire avec le résultat degetEffectiveLevel()
.Vous trouverez ci-dessous le code que le module de journalisation lui-même utilise.
la source
Juste
la source