Django错误自动发送邮件警报
服务部署上云后,避免不了代码会有一些Bug,每次都让用户反馈不太现实,让服务出问题的时候发送邮件通知看起来还不错。
当服务出错时,会发送类似这样的邮件
参考教程
将DEBUG改为False
在settings.py中配置邮箱通知
# 被通知的用户,例如这样
ADMINS = [('bai', '3401797899@qq.com'), ]
# 错误信息电子邮件地址的来源 一般为发信邮箱
SERVER_EMAIL = ''
# SMTP服务器配置
EMAIL_HOST = 'smtp.qq.com'
EMAIL_HOST_PASSWORD = '' # 授权码
EMAIL_HOST_USER = ''
# SMTP 服务器端口
# 25(无)/SSL(465)/TLS(587)
EMAIL_PORT = 465
# 使用SSL模式
EMAIL_USE_SSL = True配置logger
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'require_debug_false': {
'()': 'django.utils.log.RequireDebugFalse',
}
},
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false'],
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django': {
'handlers': ['mail_admins', ],
'level': 'ERROR',
},
}
}
如果没有错误进行拦截,这么配置就可以了。如果拦截了,得手动logger一下
例如在DRF中
def handle_exception(self, exc): |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 白!
评论