AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

Django で エラーの扱いを考える

Django 使って ?(ハテナ)になった事の一つは、500エラーなどが Webログに残らない点。

メール通知

settings.py の DEBUG=True を設定すれば、エラー発生時にエラーページは表示されるのですが、エラーログ自体はログファイルに記録されないのですよね。

本番では DEBUG=False で運用するのに、どやって知るのかというと、メールでの通知を行うというのが基本になるようです。

500 と 404 を分けて通知できたりと、ちょっと工夫されていますが、ログファイルにも残しておきたいなぁと思ったり

ログファイルに記録する

同じ問題は、いろんな方々が対応を試みてるようです。

handler500 をオーバーライドして対応


django: 例外(exception)をログに残すようにする - karasuyamatenguの日記

MiddleWare を追加して対応


Djangoの例外をウェブサーバのエラーログに表示する方法 | さくらたんどっとびーず

mod_wsgi ホストの際のログ扱い


ログをとる - スコトプリゴニエフスク通信

その他

settings.py の ALLOWED_HOSTS を適切に設定しなかったから Bad Request (400) Error が出たりする時も、フレームワークを理解していないと対策が難しい問題の一つですね。

全然話しは違いますが、IISだとhttp.sysが補足してくれてログには残ったような > 400。

なんにせよ、アクセス数が増える前に、これらを参考に対応を実施しておきたいと思います。