是否可以创建/扩展一个 CakePHP 异常处理程序,该处理程序显示用户尝试访问的引发异常的 url?
通常当我查看我的 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,而哪个 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 版本,它就会被覆盖,但它是一个快速修复,非常适合我的情况。