RpcLoggerMiddleware.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Middleware;
  4. use Psr\Http\Message\ResponseInterface;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. use Psr\Http\Server\MiddlewareInterface;
  7. use Psr\Http\Server\RequestHandlerInterface;
  8. class RpcLoggerMiddleware implements MiddlewareInterface
  9. {
  10. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  11. {
  12. var_dump($request, '---------------1----');
  13. var_dump($request->getRequestTarget(), '-------------2----');
  14. // 记录请求信息
  15. $data = $request->getParsedBody();
  16. $logger = \Hyperf\Utils\ApplicationContext::getContainer()
  17. ->get(\Hyperf\Logger\LoggerFactory::class)
  18. ->get('rpc');
  19. $logger->info('RPC请求', [
  20. 'method' => $data['method'] ?? 'unknown',
  21. 'params' => $data['params'] ?? [],
  22. 'timestamp' => microtime(true)
  23. ]);
  24. // 处理请求
  25. $response = $handler->handle($request);
  26. // 记录响应信息
  27. $logger->info('RPC响应', [
  28. 'method' => $data['method'] ?? 'unknown',
  29. 'response' => $response->getBody()->getContents(),
  30. 'timestamp' => microtime(true)
  31. ]);
  32. return $response;
  33. }
  34. }