Filtro en server params
This commit is contained in:
32
app/common/Implement/Log/Processor/Request.php
Normal file
32
app/common/Implement/Log/Processor/Request.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?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 __invoke(LogRecord $record): LogRecord
|
||||
{
|
||||
$request = $this->container->get(ServerRequestInterface::class);
|
||||
$serverFilters = [
|
||||
'HTTP_',
|
||||
'QUERY_',
|
||||
'REDIRECT_',
|
||||
'REMOTE_',
|
||||
'REQUEST_',
|
||||
];
|
||||
$serverParams = array_filter($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(),
|
||||
];
|
||||
return $record;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user