zend-log:将错误发送到 stderr,将其他任何内容发送到 stdout
zend-log: Send errors to stderr, anything else to stdout
目前我的记录器是这样设置的:
$logger = new Zend\Log\Logger();
$logger->addWriter(new Zend\Log\Writer\Stream('php://stdout'));
缺点:$logger->err()
和 $logger->info()
现在都打印到 stdout
。但是,我希望前者打印到 stderr
?我可以为某些作者分配优先级吗?所以任何 <= Zend\Log\Logger::ERR
最终都在 stderr
而其他任何东西在 stdout
?
您可以根据需要添加任意数量的作者,并按优先级过滤他们。
// 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);
您可以在文档中找到更多信息:
目前我的记录器是这样设置的:
$logger = new Zend\Log\Logger();
$logger->addWriter(new Zend\Log\Writer\Stream('php://stdout'));
缺点:$logger->err()
和 $logger->info()
现在都打印到 stdout
。但是,我希望前者打印到 stderr
?我可以为某些作者分配优先级吗?所以任何 <= Zend\Log\Logger::ERR
最终都在 stderr
而其他任何东西在 stdout
?
您可以根据需要添加任意数量的作者,并按优先级过滤他们。
// 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);
您可以在文档中找到更多信息: