0

目前我的记录器是这样设置的:

$logger = new Zend\Log\Logger();
$logger->addWriter(new Zend\Log\Writer\Stream('php://stdout'));

缺点:两者$logger->err()$logger->info()现在都打印到stdout. 但是,我希望前者打印到stderr? 我可以将某些作者分配到优先级吗?所以有什么东西<= Zend\Log\Logger::ERRstderr而其他东西在stdout吗?

4

1 回答 1

2

您可以根据需要添加任意数量的作者,并按优先级过滤它们。

// Add ERROR writer
$logger = new Logger();
$errorWriter = new Stream('php://stdout');
// Filter logs only for ERROR priority
$errorWriter->addFilter(new Priority(Logger::ERR, '='));
$logger->addWriter($errorWriter);

// Add INFO writer
$infoWriter = new Stream('php://stderr');
// Filter logs only for INFO priority
$infoWriter->addFilter(new Priority(Logger::INFO, '='));
$logger->addWriter($infoWriter);

您可以在文档中找到更多信息:

于 2019-11-27T15:13:01.310 回答