CakePHP 例外処理

主に致命的なエラーのときなどに、正常処理とは異なるページで
表示したい場合

//コントローラなどで例外ページ呼び出し処理を行う。
$this->cakeError(“error”, array(‘msg’=>’エラーメッセージ’));
——————————————————————-
■エラーハンドハンドラ作成
/app/app_error.phpを作成する
class AppError extends ErrorHandler {

 function error($params) {
  //呼び出されたのが配列のキー[msg]に入ってくる
  $this->controller->set(‘msg’, $params[‘msg’]);
  //error.ctpを使用する
  $this->_outputMessage(‘error’);
 }

}

——————————————————————-
■エラーのview作成
/app/views/errors/error.ctpを作成する
<?php
/**
 * エラー発生時のとび先
 */
?>
<p>
 <strong><?php echo $msg; ?></strong>
</p>

——————————————————————-
JQueryのloadを使用していると(まあ当然だが)
うまくいかなかったので再リクエストで対応した。
エラー発生時に詰める
$this->ErrorHandle->setError(“登録・更新処理で問題が発生しました。”);

以下をリクエスト
function error() {
 //例外ページへ
 $this->cakeError(“error”, array(‘msg’=>$this->ErrorHandle->getError()));
}

cakePHP ロギング

「Object」クラスで定義されている「log()」関数を呼び出すだけで出来る。

$this->log(“出力内容”);
app/tmp/logs/error.log がデフォルトで出力される。

デバッグログが出したければ以下のようにするのみ。
$this->log(‘出力内容’, LOG_DEBUG);
app/tmp/logs/debug.logが出力される。
しかし、ログのローテトとか出来んし、使いものになるんだろうか。
log4phpを導入すべきか、それも使いものになるのかな。
phpは弱点多い。。
参考URL
http://book.cakephp.org/ja/view/157/Logging