例外発生時にメールで知らせる 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