Ejemplo n.º 1
0
 public function buildLogger(Container $container)
 {
     $logger = new Logger($container['names_resolver']);
     /** @var Config $config */
     $config = $container['config'];
     $loggingConfig = $config->getSection('logging');
     $shouldResolve = Ar::get($loggingConfig, 'resolve') ?: false;
     $logger->setResolveNames($shouldResolve);
     $loggingEntries = Ar::get($loggingConfig, 'handlers') ?: [];
     Ar::each($loggingEntries, function ($loggingEntry) use($logger, $container) {
         $filter = Ar::get($loggingEntry, 'filter') ?: 255;
         $handlerName = Ar::get($loggingEntry, 'handler');
         switch ($handlerName) {
             case 'slack':
                 $channels = Ar::get($loggingEntry, 'channels') ?: [];
                 $handler = (new SlackHandler($container['slack_facade']))->setChannels($channels)->setFilter($filter);
                 break;
             case 'console':
                 $handler = (new ConsoleOutputHandler())->setFilter($filter);
                 break;
             default:
                 return;
         }
         $logger->addHandler($handler);
     });
     $container['logger'] = $logger;
 }