我在跑Django 1.0
我即将部署我的应用程序。因此,我将把 DEBUG 设置更改为 False。
话虽如此,当错误发生时,我仍然希望在 500.html 页面上包含堆栈跟踪。通过这样做,用户可以复制并粘贴错误并轻松地将其通过电子邮件发送给开发人员。
关于如何最好地解决这个问题有什么想法吗?
自动记录您的 500 秒,这样:
- 你知道它们什么时候发生。
- 您不需要依赖用户向您发送堆栈跟踪。
Joel 建议甚至在应用程序遇到故障时在错误跟踪器中自动创建票证。就我个人而言,我创建了一个(私有)RSS feed,其中包含开发人员可以订阅的堆栈跟踪、url 等。
另一方面,向用户显示堆栈跟踪可能会泄露恶意用户可用来攻击您的网站的信息。过于详细的错误消息是 SQL 注入攻击的经典垫脚石之一。
Edit(添加了代码示例以捕获回溯):
您可以从 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))
Prints:
Exception : Message
File "exception.py", line 5, in <module>
raise Exception("Message")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)