【问题标题】:How to parse my logs in Symfony2 (Monolog\Logger)如何在 Symfony2 中解析我的日志(Monolog\Logger)
【发布时间】:2015-11-23 17:24:54
【问题描述】:

我在这样的服务中使用 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');
}

我想按日志级别检索记录。 我该怎么做?

谢谢。

【问题讨论】:

  • 需要解析日志吗?它们是文本文件。只需将它们解析即可。水平也有。如果您愿意,可以使用 grep 获取它。

标签: symfony logging monolog log-level


【解决方案1】:

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

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

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 没有相同的结果...

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

谢谢。

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 2013-12-06
    • 2012-04-17
    • 2018-01-25
    • 2014-07-03
    • 2015-07-19
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多