method(true) === 'OPTIONS') { return response()->send(); } $path = $request->pathinfo(); $shouldLog = in_array($path, $this->logRoutes); $logData = []; if ($shouldLog) { $ip = (new BaseHomeService())->getClientRealIp(); $params = $request->param(); $logData = [ 'url' => $request->url(), 'method' => $request->method(), 'params' => $params, 'ip' => $ip, ]; // 如果登录了,记录 user_id if (!empty($request->user_id)) { $logData['user_id'] = $request->user_id; } } $response = $next($request); if ($shouldLog && $response instanceof Response) { $logData['response'] = $response->getData(); } //写入redis if (!empty($logData)) { $logData['user_agent'] = $request->header('user-agent'); $logData['created_at'] = date('Y-m-d H:i:s'); // 记录日志到 Redis \think\facade\Cache::store('redis')->lpush('api_log', json_encode($logData)); } return $response; } }