API Platform Logging Headers from requests
You can create a listener for the kernel.terminate event, that would be logging request and response data. Something like this.
monolog.yaml
monolog: handlers: request_log: type: rotating_file max_files: 90 level: debug path: '%kernel.logs_dir%/request/%kernel.environment%.log' channels: request_log
services.yaml
App\EventListener\LogRequestAndResponseEventListener: tags: - { 'name': 'monolog.logger', 'channel': 'request_log' } - { 'name': 'kernel.event_listener', 'event': 'kernel.terminate', 'method': 'onKernelTerminate' }
listener
namespace App\EventListener;use Psr\Log\LoggerInterface;use Symfony\Component\HttpKernel\Event\TerminateEvent;class LogRequestAndResponseEventListener{ private $logger; public function __construct(LoggerInterface $logger) { $this->logger = $logger; } public function onKernelTerminate(TerminateEvent $event) { $request = $event->getRequest(); $response = $event->getResponse(); $this->logger->info('data', [ 'route' => $request->getMethod() . ' ' . $request->getRequestUri(), 'status' => $response->getStatusCode(), 'request body' => $request->request->all(), 'response' => json_decode($response->getContent(), true), 'headers' => $request->headers->all(), ]); }}