当前位置: 首页 > 后端技术 > PHP

Laravel8自定义json记录HTTP请求

时间:2023-03-29 18:02:00 PHP

1.自定义日志通道vimconfig/logging.php'request'=>['driver'=>'daily',//按日期分隔日志'path'=>storage_path('logs/request.log'),'tap'=>[App\Logging\CustomizeFormatter::class],'days'=>14,],2.自定义json解析并新建一个CustomizeFormattergetHandlers()as$handler){$handler->setFormatter(newCustomizeJsonFormatter());}}}NewCustomizeJsonFormatter$record['datetime']->format('Y-m-dH:i:s'),'消息'=>$record['消息'],];如果(!empty($record['context'])){$newRecord=array_merge($newRecord,$record['context']);$json=$this->toJson($this->normalize($newRecord),true)。($this->appendNewline?"\n":'');返回$json;}}3.记录HTTP请求创建中间件phpartisanmake:middlewareRequestLogMiddlewareconfigureglobalaccessvimapp/Http/Kernel.phpprotected$middleware=[...\App\Http\Middleware\RequestLogMiddleware::class,];记录HTTP请求$requestLog=['ip'=>$request->ips(),'method'=>$request->method(),'status_code'=>$response->getStatusCode(),'headers'=>$request->header(),'url'=>$request->url(),'query'=>$request->query(),'params'=>$request->all(),'response'=>$response->getData(),];4.输出日志\Log::channel('request')->info('REQUESTLOG',$requestLog);