/**
  * @covers Monolog\Handler\GroupHandler::isHandling
  */
 public function testIsHandling()
 {
     $testHandlers = array(new TestHandler(Logger::ERROR), new TestHandler(Logger::WARNING));
     $handler = new GroupHandler($testHandlers);
     $this->assertTrue($handler->isHandling($this->getRecord(Logger::ERROR)));
     $this->assertTrue($handler->isHandling($this->getRecord(Logger::WARNING)));
     $this->assertFalse($handler->isHandling($this->getRecord(Logger::DEBUG)));
 }
 /**
  * @covers Monolog\Handler\GroupHandler::handle
  */
 public function testHandleUsesProcessors()
 {
     $test = new TestHandler();
     $handler = new GroupHandler(array($test));
     $handler->pushProcessor(function ($record) {
         $record['extra']['foo'] = true;
         return $record;
     });
     $handler->handle($this->getRecord(Logger::WARNING));
     $this->assertTrue($test->hasWarningRecords());
     $records = $test->getRecords();
     $this->assertTrue($records[0]['extra']['foo']);
 }
Beispiel #3
0
 /**
  * @param \Monolog\Logger $logger
  */
 public function __invoke(Logger $logger)
 {
     $config = $this->app->make(Repository::class);
     $handlers = [];
     $errorHandlers = [];
     // Add mail error handler
     if ($config->get('log.mail.enabled', false) === true) {
         $errorHandlers[] = new NativeMailerHandler($config->get('log.mail.to'), $config->get('log.mail.subject'), $config->get('log.mail.from'), Logger::DEBUG);
     }
     if ($errorHandlers !== []) {
         $handlers[] = new FingersCrossedHandler(new GroupHandler($errorHandlers));
     }
     // Handler for database handling
     $fallbackHandler = new StreamHandler($config->get('log.db.fallback', storage_path('/logs/db-fallback.log')));
     $fallbackHandler->setFormatter(new JsonFormatter(JsonFormatter::BATCH_MODE_NEWLINES));
     $dbHandler = new LaravelDbHandler($this->app, $fallbackHandler);
     $handlers[] = $this->buffer = new BufferHandler($dbHandler, $config->get('log.db.level', Logger::INFO));
     // Register all handlers in logger
     $group = new GroupHandler($handlers);
     $group->pushProcessor(new UidProcessor());
     $logger->pushHandler($group);
 }
 /**
  * @covers Monolog\Handler\GroupHandler::handle
  */
 public function testHandleBatchUsesProcessors()
 {
     $testHandlers = array(new TestHandler(), new TestHandler());
     $handler = new GroupHandler($testHandlers);
     $handler->pushProcessor(function ($record) {
         $record['extra']['foo'] = true;
         return $record;
     });
     $handler->handleBatch(array($this->getRecord(Logger::DEBUG), $this->getRecord(Logger::INFO)));
     foreach ($testHandlers as $test) {
         $this->assertTrue($test->hasDebugRecords());
         $this->assertTrue($test->hasInfoRecords());
         $this->assertTrue(count($test->getRecords()) === 2);
         $records = $test->getRecords();
         $this->assertTrue($records[0]['extra']['foo']);
         $this->assertTrue($records[1]['extra']['foo']);
     }
 }