RequestLoggerMiddleware.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Middleware;
  4. use Psr\Container\ContainerInterface;
  5. use Psr\Http\Message\ResponseInterface;
  6. use Psr\Http\Server\MiddlewareInterface;
  7. use Psr\Http\Message\ServerRequestInterface;
  8. use Psr\Http\Server\RequestHandlerInterface;
  9. use Psr\Log\LoggerInterface;
  10. class RequestLoggerMiddleware implements MiddlewareInterface
  11. {
  12. protected LoggerInterface $logger;
  13. public function __construct(LoggerInterface $logger)
  14. {
  15. $this->logger = $logger;
  16. }
  17. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  18. {
  19. var_dump("----------------------------------1------");
  20. // 记录请求信息
  21. $this->logger->info("Request received: " . json_encode([
  22. 'uri' => (string) $request->getUri(),
  23. 'method' => $request->getMethod(),
  24. 'headers' => $request->getHeaders(),
  25. 'body' => $request->getBody()->getContents(),
  26. ]));
  27. // 重置请求体流指针
  28. // $request->getBody()->rewind();
  29. return $handler->handle($request);
  30. }
  31. }