47 lines
1.4 KiB
PHP
47 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use App\Const\Filter;
|
|
use App\Tools\Tools;
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Log;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
class ReqRecordMiddleware
|
|
{
|
|
/**
|
|
* Handle an incoming request.
|
|
*
|
|
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
|
|
*/
|
|
public function handle(Request $request, Closure $next): Response
|
|
{
|
|
//记录请求
|
|
$sReqId = \App\Tools\Tools::generateRandStr(16);
|
|
$sReqIp = $request->getClientIp();
|
|
$sReqUrl = $request->getUri();
|
|
$sReqMethod = $request->getMethod();
|
|
$sReqParams = json_encode($request->all());
|
|
$sReqTime = date('Y-m-d H:i:s');
|
|
$sReqUserAgent = $request->userAgent();
|
|
$sReqReferer = $request->headers->get('referer');
|
|
$sReqHeader = json_encode($request->headers->all());
|
|
|
|
$aData = [
|
|
'req_id'=>$sReqId,
|
|
'req_ip'=>$sReqIp,
|
|
'req_url'=>$sReqUrl,
|
|
'req_method'=>$sReqMethod,
|
|
'req_params'=>Tools::filterDataParams($sReqParams,Filter::REQ_LOG_FILTER),
|
|
'req_time'=>$sReqTime,
|
|
'req_user_agent'=>$sReqUserAgent,
|
|
'req_referer'=>$sReqReferer,
|
|
'req_header'=>$sReqHeader,
|
|
];
|
|
Log::info('req_record',$aData);
|
|
return $next($request);
|
|
}
|
|
}
|