El día 28 de octubre de 2013 21:37, Jose Caballero
<[email protected]> escribió:
> 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
_log envía el mensaje al logger sin chequear los niveles. Usa
Logger.log en su lugar:
def trace(self, msg, *args, **kwargs):
self.log(logging.TRACE, msg, *args, **kwargs)
No veo clara la implementación que estás haciendo, con modificaciones
tanto del módulo logging como de la clase Logger/RootLogger. Sin
volver a la discursión de estos días sobre especializar o parchear
clases, deberías derivar tu propia clase de Logger en vez de usar el
logger root. Parcheando así podrías tener problemas con el
multiproceso.
import logging
class MyLogger(logging.getLoggerClass()):
TRACE = 5
logging.addLevelName(TRACE, "TRACE")
def trace(self, msg, *args, **kwargs):
self.log(self.TRACE, msg, *args, **kwargs)
logging.setLoggerClass(MyLogger)
logger = logging.getLogger(__name__)
logger.addHandler(logging.StreamHandler())
logger.setLevel("TRACE")
logger.trace("hi")
logger.setLevel("INFO")
logger.trace("hi")
>
>
> 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
> _______________________________________________
> Python-es mailing list
> [email protected]
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
_______________________________________________
Python-es mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/