您现在的位置是: 网站首页 >Django Django

Django使用Email跟踪代码错误

admin2018年12月9日 13:59 Django 924人已围观

# Django使用Email跟踪代码错误 运行到服务器上后`DEBUG=False`,当访问出现异常时,通过邮件发送错误到设置的邮箱。 # 发送错误 当运行着公开的网页时,你应该把设置中的 `DEBUG=False`。 这将使服务器运行得更快,并且还可以防止恶意用户在错误页面中看到应用的详细信息。 然而,把 DEBUG 设置为 False, 这意味着不会在你的网站上看到错误的细节,所有的人都只是看到公开的错误页面。当需要在部署的网页上追踪出现的错误,Django 可以通过设置去报告错误的细节。 ## 通过邮件方式报告 ### Server errors 当DEBUG为False时,Django将在代码引发未处理异常并导致内部服务器错误(HTTP状态代码500)时向ADMINS设置中列出的用户发送电子邮件。这将立即通知管理员任何错误。管理员将获得错误的描述、完整的Python回溯以及导致错误的HTTP请求的详细信息。 #### ADMIN配置 **关于settings.py中的ADMIN**,默认为: `[]` (空列表) 获得代码错误通知的所有人的列表。当`DEBUG=False`和`AdminEmailHandler`在日志中配置(默认情况下完成)时,Django将请求/响应周期中引发的异常的详细信息发送给这些人。 列表中的每一项都应该是(全名、电子邮件地址)元组。例子: ```python # 将请求/响应周期中引发的异常的详细信息发送邮箱配置 ADMINS = [('admin', 'qq@qq.com'), ('another', 'email@xxx.com')] ``` > 为了发送电子邮件,Django需要一些设置来告诉它如何连接到邮件服务器。至少,需要指定`EMAIL_HOST`,可能还需要指定`EMAIL_HOST_USER`和`EMAIL_HOST_PASSWORD`,不过还需要根据邮件服务器的配置进行其他设置。有关电子邮件相关设置的完整列表,请参阅[Django设置文档](https://docs.djangoproject.com/zh-hans/2.1/ref/settings/#email-host)。 默认情况下,Django将从root@localhost发送电子邮件。然而,一些邮件提供商拒绝来自该地址的所有电子邮件。若要使用不同的发件人地址,请修改`SERVER_EMAIL`设置。 要激活此行为,请将收件人的电子邮件地址放在`ADMIN`设置中。 settings.py中的设置 ```python EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'smtp.yeah.net' # smtp地址 EMAIL_HOST_USER = 'xxx@yeah.net' # smtp 服务器的用户名 EMAIL_HOST_PASSWORD = 'password' # smtp服务器的密码 # 管理员站点 SERVER_EMAIL = 'xxx@yeah.net' # 将请求/响应周期中引发的异常的详细信息发送邮箱配置 ADMINS = [('admin', 'qq@qq.com'), ] ``` > 服务器错误电子邮件使用日志框架发送,因此可以通过自定义日志配置来自定义此行为。 ### 404 errors Django还可以配置为发送关于断开链接的错误邮件(404“page not found”错误)。 Django在什么时候发送404错误的电子邮件 - `DEBUG = False` - 您的中间件`MIDDLEWARE s`设置包括`django.middleware.common.BrokenLinkEmailsMiddleware` 如果满足这些条件,Django将在代码出现404并请求有引用程序时向manager设置中列出的用户发送电子邮件。对于没有Referer(HTTP 请求header 的一部分)的404错误,它不需要发送电子邮件——那些通常只是访问了损坏的url或损坏的网络机器人。当引用程序等于请求的URL时,它也会忽略404,因为这种行为也是来自损坏的Web机器人。 > `BrokenLinkEmailsMiddleware`必须出现在拦截404错误的其他中间件之前,例如`LocaleMiddleware`或`FlatpageFallbackMiddleware`。将它放在中间件设置的顶部。 您可以通过调整`IGNORABLE_404_URLS`设置来告诉Django停止报告特定的404s。它应该是已编译正则表达式对象的列表。例如: https://docs.djangoproject.com/zh-hans/2.1/howto/error-reporting/#errors

很赞哦! (0)

文章交流

  • emoji
0人参与,0条评论

当前用户

未登录,点击   登录

站点信息

  • 建站时间:网站已运行2075天
  • 系统信息:Linux
  • 后台程序:Python: 3.8.10
  • 网站框架:Django: 3.2.6
  • 文章统计:256 篇
  • 文章评论:60 条
  • 腾讯分析网站概况-腾讯分析
  • 百度统计网站概况-百度统计
  • 公众号:微信扫描二维码,关注我们
  • QQ群:QQ加群,下载网站的学习源码
返回
顶部
标题 换行 登录
网站