Request Log Processor

This commit is contained in:
Juan Pablo Vial
2025-06-03 12:17:52 -04:00
parent 7f37dc76e3
commit ed29dfb984

View File

@ -1,18 +1,16 @@
<?php
namespace Incoviba\Common\Implement\Log\Processor;
use Psr\Container\ContainerInterface;
use Psr\Http\Message\ServerRequestInterface;
use Monolog\LogRecord;
use Monolog\Processor\ProcessorInterface;
class Request implements ProcessorInterface
{
public function __construct(protected ContainerInterface $container) {}
public function __construct(protected ServerRequestInterface $request) {}
public function __invoke(LogRecord $record): LogRecord
{
$request = $this->container->get(ServerRequestInterface::class);
$serverFilters = [
'HTTP_',
'QUERY_',
@ -20,12 +18,12 @@ class Request implements ProcessorInterface
'REMOTE_',
'REQUEST_',
];
$serverParams = array_filter($request->getServerParams(),
$serverParams = array_filter($this->request->getServerParams(),
fn($key) => count(array_filter($serverFilters, fn($prefix) => str_starts_with($key, $prefix))) > 0,
ARRAY_FILTER_USE_KEY);
$record->extra['request'] = [
'server' => $serverParams,
'headers' => $request->getHeaders(),
'headers' => $this->request->getHeaders(),
];
return $record;
}