public static function createLogger(ContainerInterface $container) : MonologWriter { $logger = new MonologWriter(new Logger(self::getConfig($container, 'env', 'production'))); if ($container->has(DispatcherContract::class)) { $logger->setEventsDispatcher($container->get(DispatcherContract::class)); } return $logger; }
public function testWriterFiresEventsDispatcher() { $events = $this->getEventsDispatcher(); $events->attach('viserio.log', function ($level, $message, array $context = []) { $_SERVER['__log.level'] = $level; $_SERVER['__log.message'] = $message; $_SERVER['__log.context'] = $context; }); $monolog = $this->mock(Logger::class); $monolog->shouldReceive('error')->once()->with('foo', []); $monolog->shouldReceive('pushProcessor')->once(); $writer = new Writer($monolog); $writer->setEventsDispatcher($events); $writer->error('foo'); $this->assertTrue(isset($_SERVER['__log.level'])); $this->assertEquals('error', $_SERVER['__log.level']); unset($_SERVER['__log.level']); $this->assertTrue(isset($_SERVER['__log.message'])); $this->assertEquals('foo', $_SERVER['__log.message']); unset($_SERVER['__log.message']); $this->assertTrue(isset($_SERVER['__log.context'])); $this->assertEquals([], $_SERVER['__log.context']); unset($_SERVER['__log.context']); }