当django中间件的服务器端发生故障时,如何获取堆栈跟踪? 这是我尝试过的操作,只给了我消息,而不是整个堆栈。
class MonitorMiddleware(object):
def process_exception(self, request, exception):
self.error = exception.message
答案 0 :(得分:0)
回答“从注释中检索错误堆栈跟踪以保存到数据库”:
https://docs.python.org/3/library/traceback.html
使用traceback
的方法将异常的跟踪转换为字符串,然后可以将其存储在数据库中。
也在上一页:
3.5版的新功能。
StackSummary对象代表准备好进行格式化的调用堆栈。
带有异常对象的简短简短示例:
>>> an_error = IndexError('tuple index out of range')
>>> traceback.print_exception(type(an_error), an_error, an_error.__traceback__)
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IndexError: list index out of range
另请参见Extract traceback info from an exception object:
不过,您无需重新引发异常,而回溯是在__traceback__
属性中。