如何在Django 500.html页面中包含堆栈跟踪?

2024-05-03 06:19:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在运行Django 1.0因此,我将把调试设置更改为false。

尽管如此,当错误发生时,我仍然希望将堆栈跟踪包含在我的500.html页面上,这样,用户就可以复制并粘贴错误,并将其发送给开发人员。


Tags: django用户false开发人员堆栈粘贴html错误
1条回答
网友
1楼 · 发布于 2024-05-03 06:19:54

自动记录500秒,这样:

  • 你知道这是何时发生的
  • 你不需要依赖用户发送堆栈跟踪。

Joel建议甚至在应用程序出现故障时自动在错误跟踪器中创建票证。 就个人而言,我使用开发人员可以订阅的stacktraces,url等创建(私有)RSS提要。

另一方面,向用户显示堆栈跟踪可能会泄露恶意用户可能用来攻击您的站点的信息。过于详细的错误消息是SQL注入攻击的典型垫脚石之一。

你可以从sys.exc_info调用中获取异常信息。 格式化显示的回溯来自回溯模块:

import traceback
import sys

try:
    raise Exception("Message")
except:
    type, value, tb = sys.exc_info()
    print >> sys.stderr,  type.__name__, ":", value
    print >> sys.stderr, '\n'.join(traceback.format_tb(tb))

 

Exception : Message
  File "exception.py", line 5, in <module>
    raise Exception("Message")

 

 

 

相关问题 更多 >