Obtener un resultado de error de módulo de 'registro' más útil en python
Estoy usando lalogger
módulo de python (python versión 3.x, pero no debería importar) y noté que un error en una cadena de formato se informa como tal:
Traceback (most recent call last):
File "/usr/lib/python3.1/logging/__init__.py", line 770, in emit
msg = self.format(record)
File "/usr/lib/python3.1/logging/__init__.py", line 650, in format
return fmt.format(record)
File "/usr/lib/python3.1/logging/__init__.py", line 438, in format
record.message = record.getMessage()
File "/usr/lib/python3.1/logging/__init__.py", line 308, in getMessage
msg = msg % self.args
TypeError: %d format: a number is required, not str
Como puede ver, no se menciona dónde estaba el error real (en mi código). Por cierto, esto es lo que estaba mal en mi código:
logging.debug('This is a string %d', str(foo))
Cambiando el%d
in%s
resuelve el problema
Mi pregunta es: ¿cómo obtengo información un poco más útil delogging
módulo de salida? ¿Tengo que escribir mi propio registrador? ¿Dónde modifico lalogger
módulo?