【Django】エラーをメール通知する
【Django】500エラーをメールで通知しよう! - hikaru2323’s diary
気づいたら動かなくなってたので書き直しました。Gmailです。
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_SSL = True EMAIL_PORT = 465 EMAIL_HOST_USER = os.environ.get('EMAIL_ADDRESS') EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASSWORD') LOGGING = { 'version': 1, """省略""" 'handlers': { 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, 'filters': ['custom'], }, }, 'loggers': { 'django': { 'handlers': ['mail_admins'], 'level': 'INFO', 'propagate': True, }, }, }
以上、お疲れさまでした。
追記:6月7日DEBUG=Trueでもエラー通知されてたので修正
ロギングでDEBUG=FALSEの時のみ通知させる。
docs.djangoproject.com
settings.py
LOGGING = { """省略""" 'filters': { # 追加 "require_debug_false": { "()": "django.utils.log.RequireDebugFalse", }, "require_debug_true": { "()": "django.utils.log.RequireDebugTrue", }, }, 'handlers': { """省略""" 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, 'filters': ['custom', "require_debug_false"], # 追加 }, }, }
私はファイルや日時のログを取りたくてロギングをカスタムしていますが、そもそもデフォルトでそれらを出力してほしいなあと。