djangoのlogging設定でSMTPHandlerを使う例

djangoのデフォルトのLOGGING設定では、エラー時のメール送信用ハンドラとして、AdminEmailHandlerを使った"mail_admins"が用意されてます。

ただAdminEmailHandlerだと、subjectが自由に設定できない?っぽかったので、SMTPHandlerを使ったハンドラを試してみました。
一応パラメータを細かく設定できます。

LOGGING = {
    'version': 1,
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'email': {
            'class':'logging.handlers.SMTPHandler',
            'mailhost': ('localhost', 25),
            'fromaddr': 'foo@example.com',
            'toaddrs': ['bar@example.com'],
            'subject': '件名',
            'credentials': ('*****', '*****'),
        },
    },
    'loggers': {
        'email_logger': {
            'handlers':['email'],
        }
    } 
}


ちなみに開発中のSMTPでのメール送信テストはローカルにデバッグ用のSMTPサーバーを立てられると簡単にできます。
こちらのエントリが参考になりました。

デバッグSMTPサーバ
http://d.hatena.ne.jp/nullpobug/20100704/1278241186