有没有办法向管理员用户显示Django调试堆栈跟踪页面,即使设置中的DEBUG = False?

场景:我不想将SSH连接到一个盒子来检索堆栈跟踪,而是希望非技术人员给我发错误!

Django有办法或钩子做这样的事吗?例如

def 500_error_happened(request):    # psuedocode >__<
    if request.user.is_staff:
        show_the_debug_stack_trace_page()
    else:
        show_user_friendly_500_html_page()

最佳答案 你可能想看看Sentry:

https://github.com/getsentry/sentry

有了它,您可以记录DEBUG = True时通常会看到的错误和堆栈跟踪,聚合它们并深入研究它们. Sentry可以配置为向您发送电子邮件,以便您立即收到通知.

另一个不需要新依赖项的选项是使用AdminEmailHandler:

https://docs.djangoproject.com/en/dev/topics/logging/#django.utils.log.AdminEmailHandler

但是,您可能需要调试的一些信息可能很敏感,不应通过电子邮件发送.这就是为什么即使上面提到的Django文档也建议使用像Sentry这样的东西.

点赞