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; }