ведение журнала — монолог множественного форматирования переполнения стека

Я использую монолог и пытаюсь использовать 2 форматера.
1. для файла с использованием обычного форматера
2. используя обработчик gelf с logstash formatter

код:

$logger = new Monolog\Logger("my-app");
$strHandle = new Monolog\Handler\RotatingFileHandler($settings['path'],$settings['max_files'], $settings['level']);
$formatter = new LogstashFormatter("name");
$strHandle->setFormatter($formatter);
$logger->pushProcessor(new Monolog\Processor\UidProcessor());
$handler = new \Monolog\Handler\GelfHandler(new \Gelf\Publisher(new \Gelf\Transport\TcpTransport("localhost", "1221")));
$logger->pushHandler($handler);
$logger->pushHandler($strHandle);
$logger->info("test");

это работает, но формат logstash также находится в файле
Я хочу что-то вроде:

$ GelfHandler-> setFormatter ($ форматировщик);

Я попробовал это, но получил ошибку 500

   $logger = new Monolog\Logger("my-app");
$strHandle = new Monolog\Handler\RotatingFileHandler($settings['path'],$settings['max_files'], $settings['level']);
$logger->pushProcessor(new Monolog\Processor\UidProcessor());
$handler = new \Monolog\Handler\GelfHandler(new \Gelf\Publisher(new \Gelf\Transport\TcpTransport("localhost", "1221")));
$formatter = new LogstashFormatter("name");
$handler->setFormatter($formatter);
$logger->pushHandler($handler);
$logger->pushHandler($strHandle);
$logger->info("test");

0

Решение

Я думаю, что вы можете использовать только GelfMessageFormatter с GelfHandler, https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#formatters

У вас есть точная ошибка? Ты пробовал без LogstashFormatterдля Гельфа?

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru