src/Infrastructure/EventSubscriber/RequestLoggerSubscriber.php line 21

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Infrastructure\EventSubscriber;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use Psr\Log\LoggerInterface;
  8. class RequestLoggerSubscriber implements EventSubscriberInterface
  9. {
  10.     private LoggerInterface $logger;
  11.     public function __construct(LoggerInterface $requestsLogger)
  12.     {
  13.         $this->logger $requestsLogger;
  14.     }
  15.     public function onKernelRequest(RequestEvent $event)
  16.     {
  17.         if ($_ENV['APP_ENV'] === 'dev') {
  18.             $request $event->getRequest();
  19.             $this->logger->info('Incoming request', [
  20.                 'method' => $request->getMethod(),
  21.                 'path' => $request->getPathInfo(),
  22.                 'client_ip' => $request->getClientIp(),
  23.                 'query_params' => $request->query->all(),
  24.                 'request_headers' => $request->headers->all(),
  25.                 'body' => $request->getContent()
  26.             ]);
  27.         }
  28.     }
  29.     public static function getSubscribedEvents()
  30.     {
  31.         // Listen to the Kernel Request event with the highest priority
  32.         return [
  33.             KernelEvents::REQUEST => ['onKernelRequest'10000],
  34.         ];
  35.     }
  36. }