/**
  * sets any initial configuration for a logger.
  * @param Logger $logger the logger to configure.
  * @param array  $config the config to configure the logger with.
  * @return Logger the configured logger.
  */
 private function setInitialConfiguration(&$logger, $config)
 {
     if (isset($config['level'])) {
         $level = $config['level'];
         if (!$level instanceof Level) {
             $level = Level::parseFromString($level);
         }
         if ($level instanceof Level) {
             $logger->setLevel($level);
         }
     }
     if (isset($config['enablePropogation']) && is_bool($config['enablePropogation'])) {
         $logger->setPropogation($config['enablePropogation']);
     }
     //see if any global extras or logger extras have been added to the config.
     if (isset($config['extras'])) {
         if (isset($config['extras']['global']) && is_array($config['extras']['global']) && count($config['extras']['global']) > 0) {
             foreach ($config['extras']['global'] as $key => $value) {
                 Logger::addGlobalExtra($key, $value);
             }
         }
         if (isset($config['extras']['local']) && is_array($config['extras']['local']) && count($config['extras']['local']) > 0) {
             foreach ($config['extras']['local'] as $key => $value) {
                 $logger->addExtra($key, $value);
             }
         }
     }
     if (isset($config['writers'])) {
         //set all of the valid writers.
         foreach ($config['writers'] as $name => $writerConf) {
             $className = '\\PHPLog\\Writer\\' . $name;
             if (class_exists($className)) {
                 $writer = new $className($writerConf);
                 $logger->addWriter($writer);
             }
         }
     }
     if (isset($config['filters'])) {
         //set all valid filters.
         foreach ($config['filters'] as $name => $filterConf) {
             $className = '\\PHPLog\\Filter\\' . $name;
             if (class_exists($className)) {
                 $filter = new $className($writerConf);
                 $logger->addFilter($filter);
             }
         }
     }
     if (isset($config['renderers'])) {
         foreach ($config['renderers'] as $class => $renderer) {
             if (!$renderer instanceof RendererInterface) {
                 if (!is_string($renderer)) {
                     return;
                 }
                 if (!class_exists($renderer)) {
                     $renderer = '\\PHPLog\\Renderer\\' . $renderer;
                     if (!class_exists($renderer)) {
                         return;
                     }
                 }
                 $renderer = new $renderer();
             }
             $logger->addRenderer($class, $renderer);
         }
     }
     return $logger;
 }