src/Subscriber/LoggRequestSubscriber.php line 29

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Subscriber;
  4. use DateTime;
  5. use Psr\Log\LoggerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. /**
  10. * Class Request logger
  11. *
  12. * @package App\Subscriber
  13. */
  14. class LoggRequestSubscriber implements EventSubscriberInterface
  15. {
  16. private LoggerInterface $logger;
  17. public function __construct(LoggerInterface $logger)
  18. {
  19. $this->logger = $logger;
  20. }
  21. public function onKernelRequest(RequestEvent $event): void
  22. {
  23. if (!$event->isMainRequest()) {
  24. return;
  25. }
  26. $request = $event->getRequest();
  27. $this->logger->notice('Incoming request', [
  28. 'method' => $request->getMethod(),
  29. 'path' => $request->getPathInfo(),
  30. 'timestamp' => (new DateTime())->format('d.m.Y H:i:s.v'),
  31. ]);
  32. }
  33. public static function getSubscribedEvents(): array
  34. {
  35. return [
  36. KernelEvents::REQUEST => 'onKernelRequest',
  37. ];
  38. }
  39. }