如果我使用内置的python日志记录机制,但我犯了一个错误,例如:
logger.debug("The result is", result)
然后我收到一条无用的错误消息:
Traceback (most recent call last):
File "/usr/lib/python2.6/logging/__init__.py", line 760, in emit
msg = self.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 644, in format
return fmt.format(record)
File "/usr/lib/python2.6/logging/__init__.py", line 432, in format
record.message = record.getMessage()
File "/usr/lib/python2.6/logging/__init__.py", line 302, in getMessage
msg = msg % self.args
TypeError: not all arguments converted during string formatting
鉴于我有大量的日志记录语句,是否有任何方法可以获得更有用的错误消息-一种显示发生错误的行号的方法?
最佳答案
感谢Greg Smith,这很容易做到。无论在何处设置日志记录代码,请执行以下操作:
import logging
def handleError(self, record):
raise
logging.Handler.handleError = handleError
堆栈跟踪中的某处将是对
logger.debug
的有害调用。注意警告:关于python - 如何获取 “not all arguments converted during string formatting”的TypeType日志记录的行号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18000985/