FIX: Request log processor no funciona

This commit is contained in:
Juan Pablo Vial
2025-06-03 12:34:08 -04:00
parent ed29dfb984
commit 6e34a76a3f
2 changed files with 10 additions and 32 deletions

View File

@ -1,30 +0,0 @@
<?php
namespace Incoviba\Common\Implement\Log\Processor;
use Psr\Http\Message\ServerRequestInterface;
use Monolog\LogRecord;
use Monolog\Processor\ProcessorInterface;
class Request implements ProcessorInterface
{
public function __construct(protected ServerRequestInterface $request) {}
public function __invoke(LogRecord $record): LogRecord
{
$serverFilters = [
'HTTP_',
'QUERY_',
'REDIRECT_',
'REMOTE_',
'REQUEST_',
];
$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' => $this->request->getHeaders(),
];
return $record;
}
}

View File

@ -3,6 +3,16 @@
use Psr\Container\ContainerInterface;
return [
Monolog\Processor\WebProcessor::class => function(ContainerInterface $container) {
return new Monolog\Processor\WebProcessor(null, [
'HTTP_X_FORWARDED_FOR',
'HTTP_CLIENT_IP',
'HTTP_X_CLIENT_IP',
'HTTP_X_REAL_IP',
'REMOTE_ADDR',
'REMOTE_HOST',
]);
},
Monolog\Formatter\LineFormatter::class => function(ContainerInterface $container) {
return (new Monolog\Formatter\LineFormatter(null, null, false, false, true))
->setBasePath('/code/');
@ -59,7 +69,6 @@ return [
return new Monolog\Logger('login', [
new Monolog\Handler\RedisHandler($container->get(Predis\ClientInterface::class), 'logs:login'),
], [
$container->get(Incoviba\Common\Implement\Log\Processor\Request::class),
$container->get(Monolog\Processor\IntrospectionProcessor::class),
$container->get(Monolog\Processor\WebProcessor::class),
$container->get(Monolog\Processor\MemoryUsageProcessor::class),
@ -71,7 +80,6 @@ return [
return new Monolog\Logger('access', [
new Monolog\Handler\RedisHandler($container->get(Predis\ClientInterface::class), 'logs:access'),
], [
$container->get(Incoviba\Common\Implement\Log\Processor\Request::class),
$container->get(Monolog\Processor\IntrospectionProcessor::class),
$container->get(Monolog\Processor\WebProcessor::class),
$container->get(Monolog\Processor\MemoryUsageProcessor::class),