让tp输出php错误信息,thinkphp5异常处理,输出日志

Model

Controller

goCheck();

$banner = BannerModel::getBannerByID($id);

if(!$banner){

throw new Exception('内部错误');

}

return $banner;

}

}

Exception

code = $e->code;

$this->msg = $e->msg;

$this->errorCode = $e->errorCode;

}else{

$this->code=500;

$this->msg = "服务器内部错误,不能告诉你";

$this->errorCode = 999;

$this->recordErrorLog($e);

}

$request = Request::instance();

$result = [

'msg'=>$this->msg,

'errorCode'=>$this->errorCode,

'request_url'=> $request->url(),

];

return json($result,$this->code);

}

public function recordErrorLog(Exception $e){

Log::init([

'type' => 'File',

'path' => LOG_PATH,

'level' => ['error'],

]);

Log::record($e->getMessage(),'error');

}

}

注:1.修改了LOG_PATH位置:define('LOG_PATH',__DIR__ . '/../log/');

2.修改了config.php:

'log' => [

// 日志记录方式,内置 file socket 支持扩展

'type' => 'test',

// 日志保存目录

'path' => LOG_PATH,

// 日志记录级别

'level' => [],

],

把File改为test

3.抛出异常,处理异常的同时输出Log日志信息

为Log输出代码

$this->recordErrorLog($e);

public function recordErrorLog(Exception $e){

Log::init([

'type' => 'File',

'path' => LOG_PATH,

'level' => ['error'],

]);

Log::record($e->getMessage(),'error');

}

4.抛出异常过程辅助理解

结果:

[ 2019-07-12T17:51:52+08:00 ] ::1 ::1 GET /zerg/public/index.php/api/v1.Banner/getBanner?id=3

[ log ] localhost/zerg/public/index.php/api/v1.Banner/getBanner?id=3 [运行时间:0.062730s][吞吐率:15.94req/s] [内存消耗:1,144.04kb] [文件加载:33]

[ error ] [0]内部错误[E:\phpStudy\PHPTutorial\WWW\zerg\application\api\controller\v1\Banner.php:29]

[ error ] 内部错误

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值