Determinar si root logger está establecido en el nivel de depuración en Python?
Si establezco el módulo de registro para DEPURAR con un parámetro de línea de comandos como este:
if (opt["log"] == "debug"):
logging.basicConfig(level=logging.DEBUG)
¿Cómo puedo saber más tarde si el registrador se configuró para DEPURAR? Estoy escribiendo un decorador que cronometrará una función si se le pasa True flag, y si no se le da ningún flag, por defecto para imprimir información de tiempo cuando el logger raíz está configurado para DEPURAR.
2 answers
logging.getLogger().getEffectiveLevel()
logging.getLogger()
sin argumentos obtiene el logger de nivel raíz.
Http://docs.python.org/library/logging.html#logging.Logger.getEffectiveLevel
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-31 23:40:56
En realidad, hay uno mejor: usa el código logging.getLogger().isEnabledFor(logging.DEBUG)
. Lo encontré mientras trataba de entender qué hacer con el resultado de getEffectiveLevel()
. :-)
(A continuación se muestra una imagen del código que utiliza el propio módulo de registro.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-23 16:46:22