このドキュメントの Django のバージョンにはセキュリティ上の脆弱性があるため、すでにサポートが終了されています。新しいバージョンにアップグレードしてください!最新の Django のバージョンのドキュメントはこちら

Django v1.0 documentation

電子メールによるエラー通知

revision-up-to:8961 (1.0)

サイトを公開しているときには、 DEBUG を常に切りましょう。 DEBUG を切ると、サーバの動作は軽くなり、エラーページを介して悪意 あるユーザにアプリケーションの詳細が漏れてしまうのを防げます。

その代わり、 DEBUGFalse にすると、サイト上で発生したエラー を一切表示できません。ユーザはみな、公開用に作られたエラーページを見るだけ です。実運用のサイトで発生したエラーを追跡したい場合のために、 Django はエ ラーの詳細をメールで送信するように設定できます。

サーバのエラー

DEBUGFalse にすると、コードが例外を送出し、その例外が捕 捉されず、結果的に 500 エラーになった場合に、 Django は ADMINS 設定にリストされている全てのユーザにメールを送信します。これは、管理者が何 らかのエラーにすぐに気づけるようにするためです。ADMINS はエラー の説明文と、 Python トレースバックと、エラーを引き起こした HTTP リクエスト の詳細情報を受け取ります。

この機能を無効にするには、ADMINS 設定から全てのユーザを削除して ください。

404 エラー

Django は、サイトのリンクが切れている (404 “page not found”) 時にメールを送 信するよう設定できます。 404 エラーメールは、以下の条件下で送信されます:

これらの条件が揃っていると、コード中で 404 例外が生じ、かつリクエストにリファ ラが設定されているときに、 Django は MANAGERS 設定に登録された全 てのユーザにメールを送信します (リファラ付きが条件なのは、リファラのないリ クエストに対する404 エラーで管理者を煩わせないためです)。

IGNORABLE_404_ENDSIGNORABLE_404_STARTS を使えば、 特定の 404 に対するレポート送信を抑制できます。例えば:

IGNORABLE_404_ENDS = ('.php', '.cgi')
IGNORABLE_404_STARTS = ('/phpmyadmin/',)

のようにすると、 URL が .php.cgi で終わるような URL や /phpmyadmin/ で始まる URL に対する 404 は報告 されません

この機能を無効にしたければ、 SEND_BROKEN_LINK_EMAILSFalse に設定してください。

See also

自作の 例外ミドルウェア を書けば、エラー レポートを自作できます。エラー処理をカスタマイズしたければ、 Django 組 み込みのエラー処理をエミュレートして、 DEBUGFalse の ときだけ、レポートやログ記録を行うとよいでしょう。