/**
  * This method must work for the root category as well.
  *
  * @param array $props array of properties
  * @param Ideasa_Log4php_Logger $logger
  * @param string $optionKey
  * @param string $loggerName
  * @param string $value
  * @return Ideasa_Log4php_Logger
  */
 private function parseCategory($props, Ideasa_Log4php_Logger $logger, $optionKey, $loggerName, $value)
 {
     // We must skip over ',' but not white space
     $st = explode(',', $value);
     // If value is not in the form ", appender.." or "", then we should set
     // the level of the loggeregory.
     if (!(empty($value) || @$value[0] == ',')) {
         // just to be on the safe side...
         if (count($st) == 0) {
             return;
         }
         $levelStr = current($st);
         // If the level value is inherited, set category level value to
         // null. We also check that the user has not specified inherited for the
         // root category.
         if ('INHERITED' == strtoupper($levelStr) || 'NULL' == strtoupper($levelStr)) {
             if ($loggerName == self::INTERNAL_ROOT_NAME) {
                 // TODO: throw exception?	"The root logger cannot be set to null."
             } else {
                 $logger->setLevel(null);
             }
         } else {
             $logger->setLevel(Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel($levelStr, Ideasa_Log4php_LoggerLevel::getLevelDebug()));
         }
     }
     // TODO: removing should be done by the logger, if necessary and wanted
     // $logger->removeAllAppenders();
     while ($appenderName = next($st)) {
         $appenderName = trim($appenderName);
         if (empty($appenderName)) {
             continue;
         }
         $appender = $this->parseAppender($props, $appenderName);
         if ($appender !== null) {
             $logger->addAppender($appender);
         }
     }
 }
Пример #2
0
 /**
  * Setting a null value to the level of the root category may have catastrophic results.
  * @param Ideasa_Log4php_LoggerLevel $level
  */
 public function setLevel($level)
 {
     if ($level != null) {
         parent::setLevel($level);
     }
 }