monolog 多重格式化程序 php
monolog multiple formatter php
我正在使用 monolog 并尝试使用 2 格式化程序。
1. 对于使用常规格式化程序的文件
2. 将 gelf 处理程序与 logstash 格式化程序一起使用
代码:
$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($formatter);
我试过了,但出现 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");
我认为您只能将 GelfMessageFormatter
与 GelfHandler
一起使用。 https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#formatters
您有确切的错误吗? Gelf 没有 LogstashFormatter
你试过吗?
我正在使用 monolog 并尝试使用 2 格式化程序。
1. 对于使用常规格式化程序的文件
2. 将 gelf 处理程序与 logstash 格式化程序一起使用
代码:
$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($formatter);
我试过了,但出现 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");
我认为您只能将 GelfMessageFormatter
与 GelfHandler
一起使用。 https://github.com/Seldaek/monolog/blob/master/doc/02-handlers-formatters-processors.md#formatters
您有确切的错误吗? Gelf 没有 LogstashFormatter
你试过吗?