例外をスローするユーザーがアクセスしようとしたURLを表示するCakePHP例外ハンドラーを作成/拡張することは可能ですか?
通常、error.logファイルを調べると、次のようなものが表示されます。
2012-08-01 13:39:20エラー:[MissingControllerException]コントローラークラスUserControllerが見つかりませんでした。#0 /www/htdocs/w0081e0e/app/webroot/index.php(104):Dispatcher-> dispatch(Object(CakeRequest)、Object(CakeResponse))#1 {main}
動作しているUsersControllerがありますが、ユーザーがどのURLにアクセスしようとしたのかわからないため、このエラーがスローされます。error.logファイルのURLを確認するのに役立ちます。それは可能ですか?例外処理ファイルを作成/拡張する必要がありますか?
更新: 独自のExceptionHandlerを作成する代わりに、「lib / Cake / Error/ErrorHandler.php」の「handleException」関数を更新しました。
if (!empty($config['log'])) {
$message = sprintf("[%s] %s\n%s",
get_class($exception),
$exception->getMessage(),
$exception->getTraceAsString().' - http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']."\n"
);
CakeLog::write(LOG_ERR, $message);
}
CakePHPのバージョンを更新すると、これが上書きされることはわかっていますが、私の状況では非常にうまく機能するクイックフィックスです。