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