Yii2 优化 ErrorHandler

Yii2 框架错误处理和记录

errorHandler 指定处理控制器和方法

原配置

config/web.php 中默认设置如下:

errorHandler => [
  "errorAction" => "site/error"
]

SiteControllers.php中对应site/error的方法如下

public function Actions(){
    return [
        "error"=>[
            "class"=>"yii/web/ErrorAction"
        ],
    ]
}

修改优化

修改 config/web.php 如下

errorHandler => [
  "errorAction" => "site/error"
]

另外新建 ErrorController.php 代码如下:

public function actionError(){

    $error = Yii::$app->errorHandler->exception;
    if($error){
        //记录错误信息到文件和数据库内
        $file = $error->getFile();
        $line = $error->getLine();
        $message = $error->getMessage();
        $code = $error->getCode();

        //把错误信息写入文件内,Yii已经封装好一个类Target
        $log = new Target();
        //把文件放入runtime里面的logs文件夹内
        $log->logFile = Yii::$app->getRuntimePath()."logs/err.log";
        //设置错误信息放置格式
        $err_msg = $message. " [file:{$file}][line:{$line}][code:{$code}][url:{$_SERVER['REQUEST_URI']}][POST_DATE:".http_build_query($_POST)."]"; 

        //写入错误信息
        $log->messages[] = [
            $err_msg,
            1,
            'application',
            microtime(true)
        ]

        $log->export(); #执行  
    }
    //页面展示错误信息
    return “错误页面</br>错误信息: ”.$err_msg.
 }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值