[Python-es] problema al crear un nuevo nivel TRACE en logging. No respeta el nivel de log asignado.

Jose Caballero jcaballero.hep en gmail.com
Lun Oct 28 21:37:07 CET 2013


Hola,


quiero agnadir un nivel de log por debajo de DEBUG, llamado TRACE.
Siguiendo cierta informacion que encontre en  stackoverflow, lo que es
implementado es lo siguiente:


    logging.TRACE = 5
    logging.addLevelName(logging.TRACE, 'TRACE')
    def trace(self, msg, *args, **kwargs):
            self._log(logging.TRACE, msg, args, **kwargs)
    logging.Logger.trace = trace


y depues de eso ya hago lo normal

    log = logging.getLogger()
    ....


El unico problema es que siempre ejecuta las llamadas a log.trace(),
independiente de el nivel de log. Por ejemplo, si hago   log.setLevel
( "INFO" )  responde a todos los mensajes de niveles INFO, WARNING,
ERROR y CRITICAL, pero tambien TRACE.
Se supone que TRACE solo deberia responder si el nivel es 5 o menos, no?

Si alguien tiene una pista de porque no respeta el valor 5 y se
ejecuta siempre, cualquier comentario sera mas que bienvenido.


Muchas gracias por adelantado.
Jose


Más información sobre la lista de distribución Python-es