/** * @param string $l the level to match */ public function setLevelToMatch($l) { if ($l instanceof Ideasa_Log4php_LoggerLevel) { $this->levelToMatch = $l; } else { $this->levelToMatch = Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel($l, null); } }
public function setProperties($properties, $prefix) { $len = strlen($prefix); reset($properties); while (list($key, ) = each($properties)) { if (strpos($key, $prefix) === 0) { if (strpos($key, '.', $len + 1) > 0) { continue; } $value = Ideasa_Log4php_Helpers_LoggerOptionConverter::findAndSubst($key, $properties); $key = substr($key, $len); if ($key == 'layout' and $this->obj instanceof Ideasa_Log4php_LoggerAppender) { continue; } $this->setProperty($key, $value); } } $this->activate(); }
/** * Set the threshold level of this appender. * * @param mixed $threshold can be a {@link Ideasa_Log4php_LoggerLevel} object or a string. * @see Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel() */ public function setThreshold($threshold) { if (is_string($threshold)) { $this->threshold = Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel($threshold, null); } else { if ($threshold instanceof Ideasa_Log4php_LoggerLevel) { $this->threshold = $threshold; } } }
/** * @param array $props array of properties * @param string $appenderName * @return Ideasa_Log4php_LoggerAppender */ private function parseAppender($props, $appenderName) { $appender = Ideasa_Log4php_LoggerAppenderPool::getAppenderFromPool($appenderName); $prefix = self::APPENDER_PREFIX . $appenderName; if ($appender === null) { // Appender was not previously initialized. $appenderClass = @$props[$prefix]; $appender = Ideasa_Log4php_LoggerAppenderPool::getAppenderFromPool($appenderName, $appenderClass); if ($appender === null) { return null; } } if ($appender->requiresLayout()) { $layoutPrefix = $prefix . ".layout"; $layoutClass = @$props[$layoutPrefix]; $layoutClass = Ideasa_Log4php_Helpers_LoggerOptionConverter::substVars($layoutClass, $props); if (empty($layoutClass)) { $layout = Ideasa_Log4php_LoggerReflectionUtils::createObject('Ideasa_Log4php_Layouts_LoggerLayoutSimple'); } else { $layout = Ideasa_Log4php_LoggerReflectionUtils::createObject($layoutClass); if ($layout === null) { $layout = Ideasa_Log4php_LoggerReflectionUtils::createObject('Ideasa_Log4php_Layouts_LoggerLayoutSimple'); } } Ideasa_Log4php_LoggerReflectionUtils::setPropertiesByObject($layout, $props, $layoutPrefix . "."); $appender->setLayout($layout); } Ideasa_Log4php_LoggerReflectionUtils::setPropertiesByObject($appender, $props, $prefix . "."); return $appender; }
/** * The <b>ContextPrinting</b> option specifies log output will include * the nested context information belonging to the current thread. * This is true by default. */ public function setContextPrinting($contextPrinting) { $this->contextPrinting = Ideasa_Log4php_Helpers_LoggerOptionConverter::toBoolean($contextPrinting); }
private function doConfigure($url, Ideasa_Log4php_LoggerHierarchy $hierarchy) { if (!is_array($url)) { $config = (require $url); } else { $config = $url; } // set threshold if (isset($config['threshold'])) { $hierarchy->setThreshold(Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel($config['threshold'], Ideasa_Log4php_LoggerLevel::getLevelAll())); } // add renderes if (isset($config['renderers'])) { foreach ($config['renderers'] as $renderedClass => $renderingClass) { $hierarchy->getRendererMap()->addRenderer($renderedClass, $renderingClass); } } // parse and create appenders if (isset($config['appenders'])) { foreach ($config['appenders'] as $appenderName => $appenderProperties) { $appender = Ideasa_Log4php_LoggerAppenderPool::getAppenderFromPool($appenderName, $appenderProperties['class']); // unset so that the property wont be drawn up again unset($appenderProperties['class']); if ($appender->requiresLayout()) { if (isset($appenderProperties['layout'])) { if (isset($appenderProperties['layout']['class']) and !empty($appenderProperties['layout']['class'])) { $layoutClass = $appenderProperties['layout']['class']; } else { $layoutClass = 'Ideasa_Log4php_Layouts_LoggerLayoutSimple'; } $layout = Ideasa_Log4php_LoggerReflectionUtils::createObject($layoutClass); if ($layout === null) { $layout = Ideasa_Log4php_LoggerReflectionUtils::createObject('Ideasa_Log4php_Layouts_LoggerLayoutSimple'); } if (isset($appenderProperties['file']) && method_exists($appender, 'setFileName')) { $appender->setFile($appenderProperties['file'], true); } if ($layout instanceof Ideasa_Log4php_Layouts_LoggerLayoutPattern) { $layout->setConversionPattern($appenderProperties['layout']['conversionPattern']); } $appender->setLayout($layout); // unset so that the property wont be drawn up again unset($appenderProperties['layout']); } else { // TODO: throw exception? } } // set remaining properties and activate appender $setter = new Ideasa_Log4php_LoggerReflectionUtils($appender); foreach ($appenderProperties as $key => $val) { $setter->setProperty($key, $val); } $setter->activate(); } } // parse and create root logger if (isset($config['rootLogger'])) { $rootLogger = $hierarchy->getRootLogger(); if (isset($config['rootLogger']['level'])) { $rootLogger->setLevel(Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel($config['rootLogger']['level'], Ideasa_Log4php_LoggerLevel::getLevelDebug())); if (isset($config['rootLogger']['appenders'])) { foreach ($config['rootLogger']['appenders'] as $appenderName) { $appender = Ideasa_Log4php_LoggerAppenderPool::getAppenderFromPool($appenderName); if ($appender !== null) { $rootLogger->addAppender($appender); } } } } } // parse and create loggers if (isset($config['loggers'])) { foreach ($config['loggers'] as $loggerName => $loggerProperties) { if (is_string($loggerName)) { $logger = $hierarchy->getLogger($loggerName); if (isset($loggerProperties['level'])) { $logger->setLevel(Ideasa_Log4php_Helpers_LoggerOptionConverter::toLevel($loggerProperties['level'], Ideasa_Log4php_LoggerLevel::getLevelDebug())); if (isset($loggerProperties['appenders'])) { foreach ($loggerProperties['appenders'] as $appenderName) { $appender = Ideasa_Log4php_LoggerAppenderPool::getAppenderFromPool($appenderName); if ($appender !== null) { $logger->addAppender($appender); } } } } } else { // TODO: throw exception } } } return true; }
public static function substVars($val, $props = null) { $sbuf = ''; $i = 0; while (true) { $j = strpos($val, self::DELIM_START, $i); if ($j === false) { // no more variables if ($i == 0) { // this is a simple string return $val; } else { // add the tail string which contails no variables and return the result. $sbuf .= substr($val, $i); return $sbuf; } } else { $sbuf .= substr($val, $i, $j - $i); $k = strpos($val, self::DELIM_STOP, $j); if ($k === false) { // Ideasa_Log4php_Helpers_LoggerOptionConverter::substVars() has no closing brace. Opening brace return ''; } else { $j += self::DELIM_START_LEN; $key = substr($val, $j, $k - $j); // first try in System properties $replacement = Ideasa_Log4php_Helpers_LoggerOptionConverter::getSystemProperty($key, null); // then try props parameter if ($replacement == null and $props !== null) { $replacement = @$props[$key]; } if (!empty($replacement)) { // Do variable substitution on the replacement string // such that we can solve "Hello ${x2}" as "Hello p1" // the where the properties are // x1=p1 // x2=${x1} $recursiveReplacement = Ideasa_Log4php_Helpers_LoggerOptionConverter::substVars($replacement, $props); $sbuf .= $recursiveReplacement; } $i = $k + self::DELIM_STOP_LEN; } } } }
/** * Indicator if the logging table should be created on startup, * if its not existing. */ public function setCreateTable($flag) { $this->createTable = Ideasa_Log4php_Helpers_LoggerOptionConverter::toBoolean($flag, true); }
public function setAppend($flag) { $this->append = Ideasa_Log4php_Helpers_LoggerOptionConverter::toBoolean($flag, true); }
public function setHtmlLineBreaks($value) { $this->htmlLineBreaks = Ideasa_Log4php_Helpers_LoggerOptionConverter::toBoolean($value, false); }
/** * @param boolean */ public function setLog4jNamespace($flag) { $this->log4jNamespace = Ideasa_Log4php_Helpers_LoggerOptionConverter::toBoolean($flag, true); }
private function subst($value) { return Ideasa_Log4php_Helpers_LoggerOptionConverter::substVars($value); }
/** * @param mixed */ public function setUseXml($flag) { $this->useXml = Ideasa_Log4php_Helpers_LoggerOptionConverter::toBoolean($flag, $this->getUseXml()); }