【发布时间】:2014-02-18 10:48:17
【问题描述】:
我想将有关 /protected/runtime 目录的 r/w 权限的错误写入 apache 错误日志,并且不向接口抛出任何异常。我应该怎么做才能解决我的“问题”?
谢谢你,对不起我的英语!
问题已通过以下方式解决:
error_log($message);
并在脚本尝试检查运行时文件夹或运行 file_put_contents 函数时删除 CException 调用
【问题讨论】:
我想将有关 /protected/runtime 目录的 r/w 权限的错误写入 apache 错误日志,并且不向接口抛出任何异常。我应该怎么做才能解决我的“问题”?
谢谢你,对不起我的英语!
问题已通过以下方式解决:
error_log($message);
并在脚本尝试检查运行时文件夹或运行 file_put_contents 函数时删除 CException 调用
【问题讨论】:
当调试关闭时,yii 使用(默认)站点/错误视图显示此错误,只需将其更改为不显示消息文本并显示通用内容(例如,如果代码 == 500 则显示“内部错误”)
如果你想在 apache 日志中出现错误,我只看到有点不干净的方式,反正刚刚测试过,它可以工作。在 php.ini 中设置 display_errors = Off 和 log_errors = On 然后将处理错误的操作从 yii 更改为恢复默认处理程序并再次出现错误 - 它应该导致 apache 日志中的日志记录和浏览器中的空白屏幕,例如:
public function actionError() {
if (($error=Yii::app()->errorHandler->error)) {
if (strpos($error['message'], 'runtime') !== false) {
restore_error_handler();
restore_exception_handler();
user_error("Problem with runtime: " . $error['message'], E_USER_ERROR);
exit();
}
if(Yii::app()->request->isAjaxRequest) {
echo $error['message'];
} else {
$this->render('error', $error);
}
}
}
【讨论】: