ウェブサービスを作っています。

Exception Notifier コンポーネントを公開

例外発生時にメールで知らせる CakePHPコンポーネント Exception Notifier を作りました。
Rails の Exception Notification みたいなやつです。
まだまだβ版ですが、gist に置いておくので、適当に fork してください。
http://gist.github.com/98770

使い方

app/controllers/components に exception_notifier.php をおいてください。
Qdmail に依存しているので、qdmail.php も app/controllers/components におく必要があります。
あとは、beforeFilter などで

<?php
public function beforeFilter()
{
    $this->ExceptionNotifier->exceptionRecipients = array('エラーメール配信先アドレス');
    $this->ExceptionNotifier->observe();
}

と書けば、観測を開始します。なお、Production モード以外では動きません。
またデフォルトで Notice と Waring も捕捉します。
捕捉したくないときは、

<?php
public function beforeFilter()
{
    $this->ExceptionNotifier->exceptionRecipients = array('エラーメール配信先アドレス');
    $this->ExceptionNotifier->observeNotice = false;    // Notice を捕捉しない
    $this->ExceptionNotifier->observeWarning = false;   // Warning を捕捉しない
    $this->ExceptionNotifier->observe();
}

のようにすれば OK です。
Strict も捕捉する場合は、

<?php
    $this->ExceptionNotifier->observeStrict = true;    // Strict を捕捉

を追加してください。


PHP の仕様から Fatal Error と Parse Error は捕捉できません。
どうぞご利用ください。


追記(2009/11/27 16:55):
バージョンアップして、Fatal Error も捕捉できるようになっています。
Exception Notifier コンポーネント更新 - milk1000cc