123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350 |
- <?php
- if (!defined('LOG4PHP_DIR')) define('LOG4PHP_DIR', dirname(__FILE__) . '/..');
- require_once(LOG4PHP_DIR . '/LoggerLevel.php');
- define('LOG4PHP_OPTION_CONVERTER_DELIM_START', '${');
- define('LOG4PHP_OPTION_CONVERTER_DELIM_STOP', '}');
- define('LOG4PHP_OPTION_CONVERTER_DELIM_START_LEN', 2);
- define('LOG4PHP_OPTION_CONVERTER_DELIM_STOP_LEN', 1);
- class LoggerOptionConverter {
-
- function OptionConverter()
- {
- return;
- }
-
- function concatanateArrays($l, $r)
- {
- return array_merge($l, $r);
- }
-
- function getSystemProperty($key, $def)
- {
- LoggerLog::debug("LoggerOptionConverter::getSystemProperty():key=[{$key}]:def=[{$def}].");
- if (defined($key)) {
- return (string)constant($key);
- } elseif (isset($_ENV[$key])) {
- return (string)$_ENV[$key];
- } else {
- return $def;
- }
- }
-
- function toBoolean($value, $default)
- {
- if($value === null)
- return $default;
- if ($value == 1)
- return true;
- $trimmedVal = strtolower(trim($value));
- if ("true" == $trimmedVal or "yes" == $trimmedVal)
- return true;
- if ("false" == $trimmedVal)
- return false;
- return $default;
- }
-
- function toInt($value, $default)
- {
- $value = trim($value);
- if (is_numeric($value)) {
- return (int)$value;
- } else {
- return $default;
- }
- }
-
- function toLevel($value, $defaultValue)
- {
- if($value === null)
- return $defaultValue;
- $hashIndex = strpos($value, '#');
- if ($hashIndex === false) {
- if("NULL" == strtoupper($value)) {
- return null;
- } else {
-
- return LoggerLevel::toLevel($value, $defaultValue);
- }
- }
- $result = $defaultValue;
- $clazz = substr($value, ($hashIndex + 1));
- $levelName = substr($value, 0, $hashIndex);
-
- if("NULL" == strtoupper($levelName)) {
- return null;
- }
- LoggerLog::debug("LoggerOptionConverter::toLevel():class=[{$clazz}]:pri=[{$levelName}]");
- if (!class_exists($clazz))
- @include_once("{$clazz}.php");
- $clazz = basename($clazz);
- if (class_exists($clazz)) {
- $result = @call_user_func(array($clazz, 'toLevel'), $value, $defaultValue);
- if (!is_a($result, 'loggerlevel')) {
- LoggerLog::debug("LoggerOptionConverter::toLevel():class=[{$clazz}] cannot call toLevel(). Returning default.");
- $result = $defaultValue;
- }
- } else {
- LoggerLog::warn("LoggerOptionConverter::toLevel() class '{$clazz}' doesnt exists.");
- }
- return $result;
- }
-
- function toFileSize($value, $default)
- {
- if ($value === null)
- return $default;
- $s = strtoupper(trim($value));
- $multiplier = (float)1;
- if(($index = strpos($s, 'KB')) !== false) {
- $multiplier = 1024;
- $s = substr($s, 0, $index);
- } elseif(($index = strpos($s, 'MB')) !== false) {
- $multiplier = 1024 * 1024;
- $s = substr($s, 0, $index);
- } elseif(($index = strpos($s, 'GB')) !== false) {
- $multiplier = 1024 * 1024 * 1024;
- $s = substr($s, 0, $index);
- }
- if(is_numeric($s)) {
- return (float)$s * $multiplier;
- } else {
- LoggerLog::warn("LoggerOptionConverter::toFileSize() [{$s}] is not in proper form.");
- }
- return $default;
- }
-
- function findAndSubst($key, $props)
- {
- $value = @$props[$key];
- if(empty($value)) {
- return null;
- }
- return LoggerOptionConverter::substVars($value, $props);
- }
-
- function substVars($val, $props = null)
- {
- LoggerLog::debug("LoggerOptionConverter::substVars():val=[{$val}]");
-
- $sbuf = '';
- $i = 0;
- while(true) {
- $j = strpos($val, LOG4PHP_OPTION_CONVERTER_DELIM_START, $i);
- if ($j === false) {
- LoggerLog::debug("LoggerOptionConverter::substVars() no more variables");
-
- if ($i == 0) {
- LoggerLog::debug("LoggerOptionConverter::substVars() simple string");
- return $val;
- } else {
- $sbuf .= substr($val, $i);
- LoggerLog::debug("LoggerOptionConverter::substVars():sbuf=[{$sbuf}]. Returning sbuf");
- return $sbuf;
- }
- } else {
-
- $sbuf .= substr($val, $i, $j-$i);
- LoggerLog::debug("LoggerOptionConverter::substVars():sbuf=[{$sbuf}]:i={$i}:j={$j}.");
- $k = strpos($val, LOG4PHP_OPTION_CONVERTER_DELIM_STOP, $j);
- if ($k === false) {
- LoggerLog::warn(
- "LoggerOptionConverter::substVars() " .
- "'{$val}' has no closing brace. Opening brace at position {$j}."
- );
- return '';
- } else {
- $j += LOG4PHP_OPTION_CONVERTER_DELIM_START_LEN;
- $key = substr($val, $j, $k - $j);
-
- $replacement = LoggerOptionConverter::getSystemProperty($key, null);
-
- if($replacement == null and $props !== null) {
- $replacement = @$props[$key];
- }
- if(!empty($replacement)) {
-
-
-
-
-
- $recursiveReplacement = LoggerOptionConverter::substVars($replacement, $props);
- $sbuf .= $recursiveReplacement;
- }
- $i = $k + LOG4PHP_OPTION_CONVERTER_DELIM_STOP_LEN;
- }
- }
- }
- }
- }
- ?>
|