当我的生产Django网站有一个例外时,Django自动通过电子邮件向我发送调试页面,包括非常详细的堆栈跟踪。 这对于调试非常有用。

但在某些情况下,即使没有异常,我也希望Django向我发送有用的堆栈跟踪。 (例如,如果用户正在做一个可疑的事情,或者有一个例外我正在沉默,但我想调查。)我想有一行代码,我可以放在我的Django逻辑中的任何地方,这将导致Django以通常的格式通过电子邮件发送堆栈跟踪。

我怎样才能做到这一点?

===============>>#1 票数:0 已采纳

Django有一个可自定义的日志记录系统,您可以创建自己的记录器配置。 在这种特殊情况下,您将使用配置为使用mail_admins处理程序的记录器。 我会指出你所有细节的文档

要包含堆栈跟踪,您将使用logger.exception(),这是一个示例:

views.py

import logging

logger = logging.getLogger(__name__)

def trigger_500(request):
    try:
        10/0
    except Exception, exc:
        logging.exception(exc)

settings.py

'loggers': {
    'an_app.views': {
        'handlers': ['mail_admins', 'console'],
        'propagate': True,
     }
}

  ask by Ram Rachum translate from so

未解决问题?本站智能推荐:

2回复

如何为django项目发送哨兵的例外

在Sentry Django指南之后,我已经设置了我的项目并进行了部署。 所以我使用SENTRY_DSN值和release值配置RAVEN_CONFIG ,并在我的INSTALLED_APPS包含raven.contrib.django.raven_compat 。 我已经确认使用此
1回复

Django没有发送错误电子邮件 - 我该如何调试?

我正在使用Django 1.8。 这是我的基本设置文件: 这些是我的制作设置: 它曾用于在生产中发送错误电子邮件,但已停止。 我已经设置了一个返回500个错误的页面,以便我可以进一步测试 - 在加载时不会发送电子邮件。 我试过调试显而易见的事情: 我仍然可以登
1回复

Django:调试页面(HTML)中的ascii追溯

我编写集成测试,该测试遍及整个HTTP堆栈: 请求库连接到http服务器 HTTP服务器将请求路由到Django应用程序 django应用程序处理请求 如果django应用程序中有未捕获的异常,我会得到HTML调试页面,因为settings.DEBUG为True
1回复

Django调试模式False然后页面不起作用

我在本地服务器上使用Django。 如果我将调试模式设置为False,则网页不可用。(500)但是如果调试模式为真,它将完美无缺。 我该怎么做才能解决这个问题?
1回复

从联系页面发送消息的问题-Django 1.6

我在views.py上有此方法: 这是网址: http://beta.contratalos.com/profiles/contact_us/ 我想将该邮件发送给我在sned_mail方法中指定的收件人。 但是每次我尝试它都会引发此错误: 有什么想法吗?
1回复

我可以向django / admin页面发送请求吗?

我正在将django-rest-framework用于一个简单的项目。 该API不需要普通用户的注册和登录。 但前端有一个admin部分,可以删除或添加某些内容到网站(数据库)。 我是否需要创建自定义的ProfileApi应用程序(登录和身份验证应用程序替代django提供的默认身份验
1回复

Django表单:重定向到发送发布请求的页面

我有2个页面,可以向用户发送私人消息。 在这两个页面上,我都有一个由相同视图处理的表单,例如 因此,我的目标是使用相同的方法在两个页面上处理表格,然后重定向回该页面。 我知道可以通过向表单添加next参数来做到这一点,但是有没有更简单的方法呢?
1回复

django-leaflet安装例外

我是Django的新手,我想安装传单以显示地图。 我遵循了安装说明 ,虽然pip命令似乎运行良好,但是当我转到settings.py将传单添加到已安装的应用程序中时,当我保存文件时出现此错误: 在回溯结束时有以下内容: 在settings.py的已安装应用部分中,我尝试添加'l
1回复

Django联系人表格并在页面上发送确认

我有一页。 页面上是联系表格。 单击“发送”按钮后,我想将包含div的表格更改为“感谢您向我们发送邮件” div。 并保持页面上的相同“ id”。 解决该问题的一种方法是放置另一个模板,然后将其作为“成功url”加载。但是,这种方式将重新加载整个页面,并且用户会在不查看确认的情况下进
1回复

在Django CMS中向页面响应发送其他变量

我正在使用Django CMS,并试图找出如何扩展CMS页面的视图。 例如,假设我在使用about_template.html文件的CMS(/ about)中创建了一个名为“关于”的页面。 在我渲染模板之前,我希望能够向响应中发送其他变量。 如何覆盖视图以将这些附加变量发送到about页面