/** * @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']); }
/** * @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']); } }