私はDjangoで構築されたサイトを持っています。Djangoエラーメールにローカル変数を含める
本番サイトでエラーが発生すると、Djangoは自動的にsettings.pyのADMINSリストにリストされている電子メールアドレスにスタックトレースを送信します。
このスタックトレースには、各スタックフレームのローカル変数が含まれています(標準のスタックトレースは、サイトがデバッグモードのときと同じです)。
アイデア?
ありがとうございます!
私はDjangoで構築されたサイトを持っています。Djangoエラーメールにローカル変数を含める
本番サイトでエラーが発生すると、Djangoは自動的にsettings.pyのADMINSリストにリストされている電子メールアドレスにスタックトレースを送信します。
このスタックトレースには、各スタックフレームのローカル変数が含まれています(標準のスタックトレースは、サイトがデバッグモードのときと同じです)。
アイデア?
ありがとうございます!
これを設定するのはとても簡単です。ただエラーメッセージを送信しているハンドラのログ設定に'include_html': True
を入れてください。例えば
(これはさておき、「include_html」ラインからデフォルトのロギングハンドラです):
'handlers': {
'mail_admins': {
'level': 'ERROR',
'filters': ['require_debug_false',],
'class': 'django.utils.log.AdminEmailHandler',
'include_html': True
}
}
これは、あなたがDEBUG取得エラーページの内容にエラーメールのHTML添付ファイルを含んでいます=真実。 Django docsには、セキュリティに関する詳細とメモがいくつかあります。
さらに多くのものをカスタマイズする必要がある場合は、django.utils.log.AdminEmailHandler
とdjango.views.debug.ExceptionReporter
のサブクラスを使用するロギングハンドラを設定することもできます。
Djangoのデフォルトのロギング設定を取得し、settings.pyで必要なビットだけをオーバーライドする方法はありますか?これは動作しませんが、私が意味することを示しています: 'django.conf.settings import LOGGING LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' –
それは次のとおりです: 'django.utils.logからDEFAULT_LOGGINGをLOGGINGとしてインポート LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' –