DEBUG = False
使用DEBUG = True
,django的开发错误页面会显示并给你(开发人员)我有用的错误信息和调试信息
问。在我有DEBUG = False
的生产环境中,是否有办法显示仅在Django / admin网站中出现的错误的“开发错误页面”?
e.g。向管理员用户显示一个漂亮的错误页面并不是必要的,我可以更快地解决问题,因为管理员可以复制并粘贴并通过电子邮件将错误发送给我,而不是我必须SSH到多个应用程序服务器的东西和检查日志
答案 0 :(得分:3)
使用sentry(也可以作为您自己托管的open source project)。它将收集所有错误(无论它们发生在何处),为您提供详细的追溯,并为您通知和跟踪错误。
使用DEBUG = False
。
答案 1 :(得分:0)
Django的DEBUG设置会执行其他操作(例如记录每个SQL查询),这会快速消耗您的服务器内存,但确定为什么不处理您喜欢的异常呢?
Django的异常例外有许多代码在django.views.debug
中进行消毒和反省,但它应该直接吐出一个简单的异常。
只需创建一个使用process_exception
挂钩的中间件。
https://docs.djangoproject.com/en/dev/topics/http/middleware/?from=olddocs#process_exception
class MyExceptionHandler(object):
def process_exception(self, request, exception):
if request.path.startswith('/admin/'):
return http.HttpResponse(
"We've encountered an exception in the /admin/ pages!")
您可以随意返回尽可能多的调试信息。