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;
 }
Example #2
0
 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']);
 }