2013-03-22 8 views
8

私はDjangoで構築されたサイトを持っています。Djangoエラーメールにローカル変数を含める

本番サイトでエラーが発生すると、Djangoは自動的にsettings.pyのADMINSリストにリストされている電子メールアドレスにスタックトレースを送信します。

このスタックトレースには、各スタックフレームのローカル変数が含まれています(標準のスタックトレースは、サイトがデバッグモードのときと同じです)。

アイデア?

ありがとうございます!

答えて

9

これを設定するのはとても簡単です。ただエラーメッセージを送信しているハンドラのログ設定に'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.AdminEmailHandlerdjango.views.debug.ExceptionReporterのサブクラスを使用するロギングハンドラを設定することもできます。

+0

Djangoのデフォルトのロギング設定を取得し、settings.pyで必要なビットだけをオーバーライドする方法はありますか?これは動作しませんが、私が意味することを示しています: 'django.conf.settings import LOGGING LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' –

+0

それは次のとおりです: 'django.utils.logからDEFAULT_LOGGINGをLOGGINGとしてインポート LOGGING ['handlers'] ['mail_admins'] ['include_html'] = True' –

関連する問題