adminId = Context::get('current_admin_id',0); } public function process(ProceedingJoinPoint $proceedingJoinPoint) { // 直接从方法参数获取请求数据 $requestData = $proceedingJoinPoint->getArguments()[0] ?? []; // 执行原方法并获取返回值 $responseData = $proceedingJoinPoint->process(); // 写日志 $this->writeLog($requestData, $responseData); // 返回 return $requestData; } /** * @param array $requestData * @param array $responseData * @return void */ private function writeLog(array $requestData = [], array $responseData = []): void { Coroutine::create(function () use ($requestData, $responseData) { $context = [ 'user_id' => $this->adminId, 'method' => $this->request->getMethod(), 'router' => $this->request->getUri(), 'ip' => $this->getClientIp(), 'request_data' => $requestData, 'response_data' => $responseData, ]; $this->logger->request()->info('admin_request_log', $context); }); } }