Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 独白多重格式化程序_Php_Logging_Monolog - Fatal编程技术网

Php 独白多重格式化程序

Php 独白多重格式化程序,php,logging,monolog,Php,Logging,Monolog,我正在使用monolog并尝试使用2格式化程序。 1.对于使用常规格式化程序的文件 2.将gelf处理程序与logstash格式化程序一起使用 代码: 这是可行的,但是logstash的格式也在文件中 我想要像这样的东西: $gelfHandler->setFormatter($formatter) 我试过了,但有500个错误 $logger = new Monolog\Logger("my-app"); $strHandle = new Monolog\Handler\Rotat

我正在使用monolog并尝试使用2格式化程序。
1.对于使用常规格式化程序的文件 2.将gelf处理程序与logstash格式化程序一起使用

代码:

这是可行的,但是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
一起使用


你有确切的错误吗?您是否尝试过不使用Gelf的
LogstashFormatter

谢谢,但我需要logstash格式,并想为文件编写常规格式Get-Catchable致命错误:传递给Gelf\Publisher::publish()的参数1必须是Gelf\MessageInterface的实例,给定字符串,callYes,GelfMessageFormatter创建MessageInterface的消息对象,因此需要使用GelfMessageFormatter。也许Logstash会理解这种格式并在内部进行转换?没有logstash方面的经验:)但谷歌找到了一个插件
   $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");