29 lines
622 B
PHP
29 lines
622 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Logger;
|
|
|
|
use Monolog\LogRecord;
|
|
use Monolog\Processor\ProcessorInterface;
|
|
use Symfony\Component\HttpFoundation\RequestStack;
|
|
|
|
class RequestIdProcessor implements ProcessorInterface
|
|
{
|
|
public function __construct(
|
|
private readonly RequestStack $requestStack,
|
|
) {
|
|
}
|
|
|
|
public function __invoke(LogRecord $record): LogRecord
|
|
{
|
|
$requestId = $this->requestStack->getMainRequest()?->attributes->get('request_id');
|
|
|
|
if (null !== $requestId) {
|
|
$record->extra['request_id'] = $requestId;
|
|
}
|
|
|
|
return $record;
|
|
}
|
|
}
|