如何在Symfony2(Monolog \ Logger)中解析我的日志

问题描述 投票:0回答:1

我在这样的服务中使用Monolog \ Logger:

<service id="my_service" class="Acme\DemoBundle\Service\MyService">
    <tag name="monolog.logger" channel="mychannel" />
    <argument type="service" id="logger" />
    <argument type="service" ... />
</service>

在服务中:

use Monolog\Logger;
class MyService{

private $logger;


public function __construct(Logger $logger, ...) {
    $this->logger = $logger;
    ...
}

}

我想在我的控制器中使用与我的服务相同的通道,因此,在我的控制器中,我有:

private function getLogger() {
    return $this->get('monolog.logger.mychannel');
}

我想按日志级别检索记录。我怎样才能做到这一点 ?

谢谢。

symfony logging monolog log-level
1个回答
0
投票

我不需要解析日志,我只想知道是否有错误或警告。

我在控制器中添加了这个:

private function hasLevelErrorHandler($type = "error") {
  $handlers = $this->getLoggger()->getHandlers();
  $records = $handlers[0]->getRecords();

  if( $type == "error" ) {
      $levels = array(Logger::ERROR, Logger::CRITICAL, Logger::ALERT,    Logger::EMERGENCY);
  } else {
      $levels = array(Logger::WARNING);
  }

  foreach( $records as $record ) {
      if( in_array($record['level'], $levels) ) {
          return true;
      }
  }
}

这是一个好方法吗?谢谢。

[编辑]我与app.php和app_dev.php的结果不一样......

所以,我不知道如何解析我的日志...如果你有想法......

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.