2007年10月04日

Python | Django エラー通知とsettings.py

Django の設定 : Django 0.96 オンラインドキュメント和訳

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

サーバのエラー
DEBUG を False にすると,コードが例外を送出し,その例外が捕捉されず,結果的に 500 エラーになった場合に, Django は ADMINS 設定にリストされている全てのユーザにメールを送信します.これは,管理者が何らかのエラーにすぐに気づけるようにするためです.

Djangoで稼働するサイトを運用環境下において初めてこの機能を知った。これは便利。

settings.pyについてperezvonさんが書いていたけど、僕のやり方は環境変数に「DJANGO_RUN_MODE」を指定して、settings.pyの中で環境別に差分のsettings.pyを読み込む形です。ちょっとRailsを意識したんだけど、無駄に複雑な気もする。このsettings.pyの管理方法はまだ模索中。

RUN_MODE = os.getenv('DJANGO_RUN_MODE', 'local').lower()

if RUN_MODE == 'local':
    DEBUG = True
    TEMPLATE_DEBUG = DEBUG
else:
    DEBUG = False

# (省略) 環境に共通の設定

# 環境別のsettings.pyをインポート
if RUN_MODE == 'development': from config.development.settings import *
elif RUN_MODE == 'production': from config.development.settings import *
else: from config.local.settings import *

大元のsettings.pyの設定値は後からインポートした環境別のsettings.pyで定義された同名変数の値で上書きされないことに注意。

Apache + mod_python環境ではSetEnvで環境変数を設定。

<Location />
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE project.settings
    ... 省略
    SetEnv DJANGO_RUN_MODE development
</Location>
Posted by otsuka : 23:10 | Comment (0) | Trackback (0)
Comment









名前、アドレスを登録しますか?