Как разобрать мои логи в Symfony2 (Monolog\Logger)

Я использую 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');
}

Я хотел бы получить записи по уровню моих журналов. Как я могу это сделать ?

Спасибо.


person Gazelle    schedule 23.11.2015    source источник
comment
Вам нужно разобрать логи? Это текстовые файлы. Просто возьмите их и разберите. Уровень тоже есть. Вы можете найти его, если хотите.   -  person Vladislav Rastrusny    schedule 24.11.2015


Ответы (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;
      }
  }
}

Это хороший способ сделать? Спасибо.

[EDIT] У меня другой результат с app.php и app_dev.php...

Итак, я не знаю, как я могу разобрать свои журналы... Если у вас есть идеи...

Спасибо.

person Gazelle    schedule 24.11.2015