ThinkPHP5.1在全局异常处理中,加入日志记录

1.首先要禁用tp默认的日志机制。

    (1).在config.php中的日志配置里面

//日志设置

'log'
    //日志记录方式,内置 file socket 支持扩展
    'type' => 'test'  //原本是file
    //日志保存目录    
    'path' =>  'LOG_PATH',
    //日志级别
    'level' => []

 (2).tp提供Log::record()方法来记录日志

         

private function recordErrorLog(Exception $e){
    //系统记录日志的方法  有两个参数  1,具体的异常信息 2,日志级别(tp手册上做好了分类,可以参考一下)
    //先给配置信息初始化
    Log::init([
        'type' => "File",
        'path' => LOG_PATH,
        'level'=> ['error']
    ]);
    Log::record($e->getMessage(),'error');

}

 

(3).在非自然抛出错误情况下,调用上面方法

public function reder(Exception $e)
{
    //这里的 instanceof 和php5.0之前版本的 is_a()是一样的 
    if($e instanceof BaseException){
        //如果是自定义的异常
        $this->code = $e->code;
        $this->msg = $e->msg;
        $this->errorCode = $e->errorCode;
    }else{
        $this->code = 500;
        $this->msg = '服务器内部错误';
        $this->errorCode = 999;//这里的错误码需要写文档做解释
        //调用刚才封装好的方法 写入日志
        $this->recordErrorLog($e);
    }
    //tp5.0好用,5.1给废除了
    $request = Request::instance();
    $result = [
        'msg' => $this->msg,
        'error_code' => $this->errorCode,
        'request_url'=> $request->url()
    ];
    return json($result,$this->code);
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值