En un script de Python que estoy escribiendo, estoy tratando de registrar eventos usando el módulo de registro. Tengo el siguiente código para configurar mi registrador:
ERROR_FORMAT = "%(levelname)s at %(asctime)s in %(funcName)s in %(filename) at line %(lineno)d: %(message)s"
DEBUG_FORMAT = "%(lineno)d in %(filename)s at %(asctime)s: %(message)s"
LOG_CONFIG = {'version':1,
'formatters':{'error':{'format':ERROR_FORMAT},
'debug':{'format':DEBUG_FORMAT}},
'handlers':{'console':{'class':'logging.StreamHandler',
'formatter':'debug',
'level':logging.DEBUG},
'file':{'class':'logging.FileHandler',
'filename':'/usr/local/logs/DatabaseUpdate.log',
'formatter':'error',
'level':logging.ERROR}},
'root':{'handlers':('console', 'file')}}
logging.config.dictConfig(LOG_CONFIG)
Cuando trato de ejecutar logging.debug("Some string")
, no obtengo ningún resultado en la consola, aunque esta página en los documentos dice que logging.debug
el registrador raíz debería mostrar el mensaje. ¿Por qué mi programa no produce nada y cómo puedo solucionarlo?
level != NOTSET
o la raíz (si no se encuentra ninguno). La raíz tieneWARNING
nivel por defecto. Esto está escrito en la sección a la que ha vinculado (Logger.setLevel
).logging
, debe llamarlogging.basicConfig()
al menos una vez. De lo contrario, es posible que se sorprenda mucho de que los registradores infantiles no impriman nada. Las funciones de registro en el registrador raíz lo llaman perezosamente.