public function send($type, $message, $placeholders = []) { if (count($placeholders) > 0) { $placeholders = array_merge([$message], $placeholders); $message = call_user_func_array('sprintf', $placeholders); } if (true === $this->shouldResolveNames && self::TYPE_RAW !== $type) { $message = $this->resolveNamesInMessage($message); } Ar::each($this->handlers, function ($handler) use($type, $message) { /** @var HandlerInterface $handler */ $handler->send($type, $message); }); }
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; }