Yii框架:仅在apache日志中编写错误

时间:2014-02-18 10:48:18

标签: php exception yii

我想将有关/ protected / runtime目录的r / w权限的错误写入apache错误日志,不要在接口中抛出任何异常。我该怎么做才能解决我的“问题”?

谢谢你,对不起我的英语!


使用以下方法解决了问题:

error_log($message);

并在脚本尝试检查运行时文件夹或运行file_put_contents函数时删除CException调用

1 个答案:

答案 0 :(得分:0)

当调试关闭时,yii正在使用(默认情况下)站点/错误视图显示此错误,只需将其更改为不显示消息文本并显示通用内容(如果代码== 500则显示“内部错误”)


如果你想在apache日志中出错,我只会看到一些不洁净的方式,无论如何只是经过测试而且有效。在php.ini中设置display_errors = Offlog_errors = On然后更改处理来自yii的错误的操作以恢复默认处理程序并再次出现错误 - 它应该导致apache日志中的日志记录和浏览器中的空白屏幕,ex :

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);
        }
    }
}