cakePHPでエラーが発生したとき

例えば存在しないコントローラーなんかをcallしたときにエラー画面が表示されて、処理中断ってなるけど、ログが出ない。

追っかけてみたら。cakeErrorの中にログを書くなんてやってなかった。さすがにあんまりなので。app_error.phpにログ出力を追加してみた。

<?php

class AppError extends ErrorHandler {
	/**
	 * エラーログ書く
	 * @param string $method
	 * @param array $messages 
	 */
	public function  __construct($method, $messages) {
		$this->log($method.":".print_r($messages,true));
		parent::__construct($method, $messages);
	}
}

丁寧にやるなら各メソッドごとに適当なログを書いてやるべきなんだけど、とりあえずこれで十分。

出力は

2011/04/14 15:58:31.68499400 Error:missingController:Array
(
    [0] => Array
        (
            [className] => AaController
            [webroot] => /trunk/
            [url] => hogehoge/aa
            [base] => /trunk
        )

)

って感じ。
ログなんて基本、開発側の人が見るんだから。