42 lines
990 B
PHP
42 lines
990 B
PHP
<?php
|
|
declare (strict_types = 1);
|
|
|
|
namespace app\middleware;
|
|
|
|
use think\facade\Log;
|
|
|
|
class LogRecorder
|
|
{
|
|
/**
|
|
* 处理请求
|
|
*
|
|
* @param \think\Request $request
|
|
* @param \Closure $next
|
|
* @return Response
|
|
*/
|
|
public function handle($request, \Closure $next)
|
|
{
|
|
// 记录请求信息
|
|
$requestInfo = [
|
|
'time' => date('Y-m-d H:i:s'),
|
|
'method' => $request->method(),
|
|
'uri' => $request->url(),
|
|
'params' => $request->param(),
|
|
'headers' => $request->header(),
|
|
'ip' => $request->ip(),
|
|
];
|
|
Log::write($requestInfo, 'request');
|
|
|
|
// 继续处理请求
|
|
$response = $next($request);
|
|
|
|
// 记录响应信息
|
|
$responseInfo = [
|
|
'status' => $response->getCode(),
|
|
'data' => $response->getContent(),
|
|
];
|
|
Log::write($responseInfo, 'response');
|
|
return $response;
|
|
}
|
|
}
|