【问题标题】:zend-log: Send errors to stderr, anything else to stdoutzend-log:将错误发送到标准错误,其他任何内容到标准输出
【发布时间】:2019-11-27 11:59:21
【问题描述】:

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

$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 中的其他内容呢?

【问题讨论】:

    标签: php logging zend-framework3 zend-log


    【解决方案1】:

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

    // 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);
    

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

    【讨论】:

      猜你喜欢
      • 2015-02-19
      • 1970-01-01
      • 2019-05-22
      • 2016-05-31
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2012-05-26
      相关资源
      最近更新 更多