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