<?php
declare(strict_types=1);
namespace App\Subscriber;
use DateTime;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
/**
* Class Request logger
*
* @package App\Subscriber
*/
class LoggRequestSubscriber implements EventSubscriberInterface
{
private LoggerInterface $logger;
public function __construct(LoggerInterface $logger)
{
$this->logger = $logger;
}
public function onKernelRequest(RequestEvent $event): void
{
if (!$event->isMainRequest()) {
return;
}
$request = $event->getRequest();
$this->logger->notice('Incoming request', [
'method' => $request->getMethod(),
'path' => $request->getPathInfo(),
'timestamp' => (new DateTime())->format('d.m.Y H:i:s.v'),
]);
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => 'onKernelRequest',
];
}
}