Modified: logging/log4php/trunk/src/main/php/helpers/LoggerOptionConverter.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/helpers/LoggerOptionConverter.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/helpers/LoggerOptionConverter.php (original) +++ logging/log4php/trunk/src/main/php/helpers/LoggerOptionConverter.php Sat Jan 15 10:56:23 2011 @@ -34,21 +34,21 @@ class LoggerOptionConverter { const DELIM_START_LEN = 2; const DELIM_STOP_LEN = 1; - /** - * Read a predefined var. - * - * It returns a value referenced by <var>$key</var> using this search criteria: - * - if <var>$key</var> is a constant then return it. Else - * - if <var>$key</var> is set in <var>$_ENV</var> then return it. Else - * - return <var>$def</var>. - * - * @param string $key The key to search for. - * @param string $def The default value to return. - * @return string the string value of the system property, or the default - * value if there is no property with that key. - * - * @static - */ + /** + * Read a predefined var. + * + * It returns a value referenced by <var>$key</var> using this search criteria: + * - if <var>$key</var> is a constant then return it. Else + * - if <var>$key</var> is set in <var>$_ENV</var> then return it. Else + * - return <var>$def</var>. + * + * @param string $key The key to search for. + * @param string $def The default value to return. + * @return string the string value of the system property, or the default + * value if there is no property with that key. + * + * @static + */ public static function getSystemProperty($key, $def) { if(defined($key)) { return (string)constant($key); @@ -76,20 +76,19 @@ class LoggerOptionConverter { * @static */ public static function toBoolean($value, $default=true) { - if (is_null($value)) { + if (is_null($value)) { return $default; - } elseif (is_string($value)) { - $trimmedVal = strtolower(trim($value)); - - if("1" == $trimmedVal or "true" == $trimmedVal or "yes" == $trimmedVal or "on" == $trimmedVal) { - return true; - } else if ("" == $trimmedVal or "0" == $trimmedVal or "false" == $trimmedVal or "no" == $trimmedVal or "off" == $trimmedVal) { - return false; - } + } elseif (is_string($value)) { + $trimmedVal = strtolower(trim($value)); + if("1" == $trimmedVal or "true" == $trimmedVal or "yes" == $trimmedVal or "on" == $trimmedVal) { + return true; + } else if ("" == $trimmedVal or "0" == $trimmedVal or "false" == $trimmedVal or "no" == $trimmedVal or "off" == $trimmedVal) { + return false; + } } elseif (is_bool($value)) { - return $value; + return $value; } elseif (is_int($value)) { - return !($value == 0); // true is everything but 0 like in C + return !($value == 0); // true is everything but 0 like in C } trigger_error("Could not convert ".var_export($value,1)." to boolean!", E_USER_WARNING); @@ -217,26 +216,26 @@ class LoggerOptionConverter { public static function findAndSubst($key, $props) { $value = @$props[$key]; - // If coming from the LoggerConfiguratorIni, some options were - // already mangled by parse_ini_file: - // - // not specified => never reaches this code - // ""|off|false|null => string(0) "" - // "1"|on|true => string(1) "1" - // "true" => string(4) "true" - // "false" => string(5) "false" - // - // As the integer 1 and the boolean true are therefore indistinguable - // it's up to the setter how to deal with it, they can not be cast - // into a boolean here. {@see toBoolean} - // Even an empty value has to be given to the setter as it has been - // explicitly set by the user and is different from an option which - // has not been specified and therefore keeps its default value. - // + // If coming from the LoggerConfiguratorIni, some options were + // already mangled by parse_ini_file: + // + // not specified => never reaches this code + // ""|off|false|null => string(0) "" + // "1"|on|true => string(1) "1" + // "true" => string(4) "true" + // "false" => string(5) "false" + // + // As the integer 1 and the boolean true are therefore indistinguable + // it's up to the setter how to deal with it, they can not be cast + // into a boolean here. {@see toBoolean} + // Even an empty value has to be given to the setter as it has been + // explicitly set by the user and is different from an option which + // has not been specified and therefore keeps its default value. + // // if(!empty($value)) { return LoggerOptionConverter::substVars($value, $props); // } - } + } /** * Perform variable substitution in string <var>$val</var> from the
Modified: logging/log4php/trunk/src/main/php/layouts/LoggerLayoutHtml.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/layouts/LoggerLayoutHtml.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/layouts/LoggerLayoutHtml.php (original) +++ logging/log4php/trunk/src/main/php/layouts/LoggerLayoutHtml.php Sat Jan 15 10:56:23 2011 @@ -48,177 +48,178 @@ */ class LoggerLayoutHtml extends LoggerLayout { - /** - * The <b>LocationInfo</b> option takes a boolean value. By - * default, it is set to false which means there will be no location - * information output by this layout. If the the option is set to - * true, then the file name and line number of the statement - * at the origin of the log statement will be output. - * - * <p>If you are embedding this layout within a {@link LoggerAppenderMail} - * or a {@link LoggerAppenderMailEvent} then make sure to set the - * <b>LocationInfo</b> option of that appender as well. - * @var boolean - */ - private $locationInfo = false; - - /** - * The <b>Title</b> option takes a String value. This option sets the - * document title of the generated HTML document. - * Defaults to 'Log4php Log Messages'. - * @var string - */ - private $title = "Log4php Log Messages"; - - /** - * Constructor - */ - public function __construct() { - } - - /** - * The <b>LocationInfo</b> option takes a boolean value. By - * default, it is set to false which means there will be no location - * information output by this layout. If the the option is set to - * true, then the file name and line number of the statement - * at the origin of the log statement will be output. - * - * <p>If you are embedding this layout within a {@link LoggerAppenderMail} - * or a {@link LoggerAppenderMailEvent} then make sure to set the - * <b>LocationInfo</b> option of that appender as well. - */ - public function setLocationInfo($flag) { - if (is_bool($flag)) { - $this->locationInfo = $flag; - } else { - $this->locationInfo = (bool)(strtolower($flag) == 'true'); - } - } - - /** - * Returns the current value of the <b>LocationInfo</b> option. - */ - public function getLocationInfo() { - return $this->locationInfo; - } - - /** - * The <b>Title</b> option takes a String value. This option sets the - * document title of the generated HTML document. - * Defaults to 'Log4php Log Messages'. - */ - public function setTitle($title) { - $this->title = $title; - } - - /** - * @return string Returns the current value of the <b>Title</b> option. - */ - public function getTitle() { - return $this->title; - } - - /** - * @return string Returns the content type output by this layout, i.e "text/html". - */ - public function getContentType() { - return "text/html"; - } - - /** - * @param LoggerLoggingEvent $event - * @return string - */ - public function format(LoggerLoggingEvent $event) { - $sbuf = PHP_EOL . "<tr>" . PHP_EOL; - - $sbuf .= "<td>"; - $sbuf .= $event->getTime(); - $sbuf .= "</td>" . PHP_EOL; - - $sbuf .= "<td title=\"" . $event->getThreadName() . " thread\">"; - $sbuf .= $event->getThreadName(); - $sbuf .= "</td>" . PHP_EOL; - - $sbuf .= "<td title=\"Level\">"; - - $level = $event->getLevel(); - - if ($level->equals(LoggerLevel::getLevelDebug())) { - $sbuf .= "<font color=\"#339933\">$level</font>"; - } else if ($level->equals(LoggerLevel::getLevelWarn())) { - $sbuf .= "<font color=\"#993300\"><strong>$level</strong></font>"; - } else { - $sbuf .= $level; - } - $sbuf .= "</td>" . PHP_EOL; - - $sbuf .= "<td title=\"" . htmlentities($event->getLoggerName(), ENT_QUOTES) . " category\">"; - $sbuf .= htmlentities($event->getLoggerName(), ENT_QUOTES); - $sbuf .= "</td>" . PHP_EOL; - - if ($this->locationInfo) { - $locInfo = $event->getLocationInformation(); - $sbuf .= "<td>"; - $sbuf .= htmlentities($locInfo->getFileName(), ENT_QUOTES). ':' . $locInfo->getLineNumber(); - $sbuf .= "</td>" . PHP_EOL; - } - - $sbuf .= "<td title=\"Message\">"; - $sbuf .= htmlentities($event->getRenderedMessage(), ENT_QUOTES); - $sbuf .= "</td>" . PHP_EOL; - - $sbuf .= "</tr>" . PHP_EOL; - - if ($event->getNDC() != null) { - $sbuf .= "<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\" title=\"Nested Diagnostic Context\">"; - $sbuf .= "NDC: " . htmlentities($event->getNDC(), ENT_QUOTES); - $sbuf .= "</td></tr>" . PHP_EOL; - } - return $sbuf; - } - - /** - * @return string Returns appropriate HTML headers. - */ - public function getHeader() { - $sbuf = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" . PHP_EOL; - $sbuf .= "<html>" . PHP_EOL; - $sbuf .= "<head>" . PHP_EOL; - $sbuf .= "<title>" . $this->title . "</title>" . PHP_EOL; - $sbuf .= "<style type=\"text/css\">" . PHP_EOL; - $sbuf .= "<!--" . PHP_EOL; - $sbuf .= "body, table {font-family: arial,sans-serif; font-size: x-small;}" . PHP_EOL; - $sbuf .= "th {background: #336699; color: #FFFFFF; text-align: left;}" . PHP_EOL; - $sbuf .= "-->" . PHP_EOL; - $sbuf .= "</style>" . PHP_EOL; - $sbuf .= "</head>" . PHP_EOL; - $sbuf .= "<body bgcolor=\"#FFFFFF\" topmargin=\"6\" leftmargin=\"6\">" . PHP_EOL; - $sbuf .= "<hr size=\"1\" noshade>" . PHP_EOL; - $sbuf .= "Log session start time " . strftime('%c', time()) . "<br>" . PHP_EOL; - $sbuf .= "<br>" . PHP_EOL; - $sbuf .= "<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">" . PHP_EOL; - $sbuf .= "<tr>" . PHP_EOL; - $sbuf .= "<th>Time</th>" . PHP_EOL; - $sbuf .= "<th>Thread</th>" . PHP_EOL; - $sbuf .= "<th>Level</th>" . PHP_EOL; - $sbuf .= "<th>Category</th>" . PHP_EOL; - if ($this->locationInfo) - $sbuf .= "<th>File:Line</th>" . PHP_EOL; - $sbuf .= "<th>Message</th>" . PHP_EOL; - $sbuf .= "</tr>" . PHP_EOL; - - return $sbuf; - } - - /** - * @return string Returns the appropriate HTML footers. - */ - public function getFooter() { - $sbuf = "</table>" . PHP_EOL; - $sbuf .= "<br>" . PHP_EOL; - $sbuf .= "</body></html>"; + /** + * The <b>LocationInfo</b> option takes a boolean value. By + * default, it is set to false which means there will be no location + * information output by this layout. If the the option is set to + * true, then the file name and line number of the statement + * at the origin of the log statement will be output. + * + * <p>If you are embedding this layout within a {@link LoggerAppenderMail} + * or a {@link LoggerAppenderMailEvent} then make sure to set the + * <b>LocationInfo</b> option of that appender as well. + * @var boolean + */ + private $locationInfo = false; + + /** + * The <b>Title</b> option takes a String value. This option sets the + * document title of the generated HTML document. + * Defaults to 'Log4php Log Messages'. + * @var string + */ + private $title = "Log4php Log Messages"; + + /** + * Constructor + */ + public function __construct() { + } + + /** + * The <b>LocationInfo</b> option takes a boolean value. By + * default, it is set to false which means there will be no location + * information output by this layout. If the the option is set to + * true, then the file name and line number of the statement + * at the origin of the log statement will be output. + * + * <p>If you are embedding this layout within a {@link LoggerAppenderMail} + * or a {@link LoggerAppenderMailEvent} then make sure to set the + * <b>LocationInfo</b> option of that appender as well. + */ + public function setLocationInfo($flag) { + if (is_bool($flag)) { + $this->locationInfo = $flag; + } else { + $this->locationInfo = (bool)(strtolower($flag) == 'true'); + } + } + + /** + * Returns the current value of the <b>LocationInfo</b> option. + */ + public function getLocationInfo() { + return $this->locationInfo; + } + + /** + * The <b>Title</b> option takes a String value. This option sets the + * document title of the generated HTML document. + * Defaults to 'Log4php Log Messages'. + */ + public function setTitle($title) { + $this->title = $title; + } + + /** + * @return string Returns the current value of the <b>Title</b> option. + */ + public function getTitle() { + return $this->title; + } + + /** + * @return string Returns the content type output by this layout, i.e "text/html". + */ + public function getContentType() { + return "text/html"; + } + + /** + * @param LoggerLoggingEvent $event + * @return string + */ + public function format(LoggerLoggingEvent $event) { + $sbuf = PHP_EOL . "<tr>" . PHP_EOL; + + $sbuf .= "<td>"; + $sbuf .= $event->getTime(); + $sbuf .= "</td>" . PHP_EOL; + + $sbuf .= "<td title=\"" . $event->getThreadName() . " thread\">"; + $sbuf .= $event->getThreadName(); + $sbuf .= "</td>" . PHP_EOL; + + $sbuf .= "<td title=\"Level\">"; + + $level = $event->getLevel(); + + if ($level->equals(LoggerLevel::getLevelDebug())) { + $sbuf .= "<font color=\"#339933\">$level</font>"; + } else if ($level->equals(LoggerLevel::getLevelWarn())) { + $sbuf .= "<font color=\"#993300\"><strong>$level</strong></font>"; + } else { + $sbuf .= $level; + } + $sbuf .= "</td>" . PHP_EOL; + + $sbuf .= "<td title=\"" . htmlentities($event->getLoggerName(), ENT_QUOTES) . " category\">"; + $sbuf .= htmlentities($event->getLoggerName(), ENT_QUOTES); + $sbuf .= "</td>" . PHP_EOL; + + if ($this->locationInfo) { + $locInfo = $event->getLocationInformation(); + $sbuf .= "<td>"; + $sbuf .= htmlentities($locInfo->getFileName(), ENT_QUOTES). ':' . $locInfo->getLineNumber(); + $sbuf .= "</td>" . PHP_EOL; + } + + $sbuf .= "<td title=\"Message\">"; + $sbuf .= htmlentities($event->getRenderedMessage(), ENT_QUOTES); + $sbuf .= "</td>" . PHP_EOL; + + $sbuf .= "</tr>" . PHP_EOL; + + if ($event->getNDC() != null) { + $sbuf .= "<tr><td bgcolor=\"#EEEEEE\" style=\"font-size : xx-small;\" colspan=\"6\" title=\"Nested Diagnostic Context\">"; + $sbuf .= "NDC: " . htmlentities($event->getNDC(), ENT_QUOTES); + $sbuf .= "</td></tr>" . PHP_EOL; + } + return $sbuf; + } + + /** + * @return string Returns appropriate HTML headers. + */ + public function getHeader() { + $sbuf = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">" . PHP_EOL; + $sbuf .= "<html>" . PHP_EOL; + $sbuf .= "<head>" . PHP_EOL; + $sbuf .= "<title>" . $this->title . "</title>" . PHP_EOL; + $sbuf .= "<style type=\"text/css\">" . PHP_EOL; + $sbuf .= "<!--" . PHP_EOL; + $sbuf .= "body, table {font-family: arial,sans-serif; font-size: x-small;}" . PHP_EOL; + $sbuf .= "th {background: #336699; color: #FFFFFF; text-align: left;}" . PHP_EOL; + $sbuf .= "-->" . PHP_EOL; + $sbuf .= "</style>" . PHP_EOL; + $sbuf .= "</head>" . PHP_EOL; + $sbuf .= "<body bgcolor=\"#FFFFFF\" topmargin=\"6\" leftmargin=\"6\">" . PHP_EOL; + $sbuf .= "<hr size=\"1\" noshade>" . PHP_EOL; + $sbuf .= "Log session start time " . strftime('%c', time()) . "<br>" . PHP_EOL; + $sbuf .= "<br>" . PHP_EOL; + $sbuf .= "<table cellspacing=\"0\" cellpadding=\"4\" border=\"1\" bordercolor=\"#224466\" width=\"100%\">" . PHP_EOL; + $sbuf .= "<tr>" . PHP_EOL; + $sbuf .= "<th>Time</th>" . PHP_EOL; + $sbuf .= "<th>Thread</th>" . PHP_EOL; + $sbuf .= "<th>Level</th>" . PHP_EOL; + $sbuf .= "<th>Category</th>" . PHP_EOL; + if ($this->locationInfo) { + $sbuf .= "<th>File:Line</th>" . PHP_EOL; + } + $sbuf .= "<th>Message</th>" . PHP_EOL; + $sbuf .= "</tr>" . PHP_EOL; + + return $sbuf; + } + + /** + * @return string Returns the appropriate HTML footers. + */ + public function getFooter() { + $sbuf = "</table>" . PHP_EOL; + $sbuf .= "<br>" . PHP_EOL; + $sbuf .= "</body></html>"; - return $sbuf; - } + return $sbuf; + } } Modified: logging/log4php/trunk/src/main/php/layouts/LoggerLayoutPattern.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/layouts/LoggerLayoutPattern.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/layouts/LoggerLayoutPattern.php (original) +++ logging/log4php/trunk/src/main/php/layouts/LoggerLayoutPattern.php Sat Jan 15 10:56:23 2011 @@ -192,28 +192,28 @@ class LoggerLayoutPattern extends Logger return $sbuf; } - /** - * Returns an array with the formatted elements. - * - * This method is mainly used for the prepared statements of {@see LoggerAppenderPDO}. - * - * It requires {@link $this->pattern} to be a comma separated string of patterns like - * e.g. <code>%d,%c,%p,%m,%t,%F,%L</code>. - * - * @return array(string) An array of the converted elements i.e. timestamp, message, filename etc. - */ - public function formatToArray(LoggerLoggingEvent $event) { - $results = array(); - $c = $this->head; - while ($c !== null) { - if ( ! $c instanceOf LoggerLiteralPatternConverter) { - $sbuf = null; - $c->format($sbuf, $event); - $results[] = $sbuf; - } - $c = $c->next; - } - return $results; - } + /** + * Returns an array with the formatted elements. + * + * This method is mainly used for the prepared statements of {@see LoggerAppenderPDO}. + * + * It requires {@link $this->pattern} to be a comma separated string of patterns like + * e.g. <code>%d,%c,%p,%m,%t,%F,%L</code>. + * + * @return array(string) An array of the converted elements i.e. timestamp, message, filename etc. + */ + public function formatToArray(LoggerLoggingEvent $event) { + $results = array(); + $c = $this->head; + while ($c !== null) { + if ( ! $c instanceOf LoggerLiteralPatternConverter) { + $sbuf = null; + $c->format($sbuf, $event); + $results[] = $sbuf; + } + $c = $c->next; + } + return $results; + } } \ No newline at end of file Modified: logging/log4php/trunk/src/main/php/layouts/LoggerLayoutSimple.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/layouts/LoggerLayoutSimple.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/layouts/LoggerLayoutSimple.php (original) +++ logging/log4php/trunk/src/main/php/layouts/LoggerLayoutSimple.php Sat Jan 15 10:56:23 2011 @@ -39,24 +39,24 @@ * @subpackage layouts */ class LoggerLayoutSimple extends LoggerLayout { - /** - * Constructor - */ - public function __construct() { - } + /** + * Constructor + */ + public function __construct() { + } - /** - * Returns the log statement in a format consisting of the - * <b>level</b>, followed by " - " and then the - * <b>message</b>. For example, - * <samp> INFO - "A message" </samp> - * - * @param LoggerLoggingEvent $event - * @return string - */ - public function format(LoggerLoggingEvent $event) { - $level = $event->getLevel(); - $message = $event->getRenderedMessage(); - return "$level - $message" . PHP_EOL; - } + /** + * Returns the log statement in a format consisting of the + * <b>level</b>, followed by " - " and then the + * <b>message</b>. For example, + * <samp> INFO - "A message" </samp> + * + * @param LoggerLoggingEvent $event + * @return string + */ + public function format(LoggerLoggingEvent $event) { + $level = $event->getLevel(); + $message = $event->getRenderedMessage(); + return "$level - $message" . PHP_EOL; + } } Modified: logging/log4php/trunk/src/main/php/layouts/LoggerLayoutTTCC.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/layouts/LoggerLayoutTTCC.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/layouts/LoggerLayoutTTCC.php (original) +++ logging/log4php/trunk/src/main/php/layouts/LoggerLayoutTTCC.php Sat Jan 15 10:56:23 2011 @@ -64,152 +64,152 @@ class LoggerLayoutTTCC extends LoggerLay // TODO: not used? const LOG4PHP_LOGGER_LAYOUT_RELATIVE_TIME_DATE_FORMAT = 'RELATIVE'; - // Internal representation of options - protected $threadPrinting = true; - protected $categoryPrefixing = true; - protected $contextPrinting = true; - protected $microSecondsPrinting = true; - - /** - * @var string date format. See {@link PHP_MANUAL#strftime} for details - */ - protected $dateFormat = '%c'; - - /** - * Constructor - * - * @param string date format - * @see dateFormat - */ - public function __construct($dateFormat = '') { - if (!empty($dateFormat)) { - $this->dateFormat = $dateFormat; - } - return; - } - - /** - * The <b>ThreadPrinting</b> option specifies whether the name of the - * current thread is part of log output or not. This is true by default. - */ - public function setThreadPrinting($threadPrinting) { - $this->threadPrinting = is_bool($threadPrinting) ? - $threadPrinting : - (bool)(strtolower($threadPrinting) == 'true'); - } - - /** - * @return boolean Returns value of the <b>ThreadPrinting</b> option. - */ - public function getThreadPrinting() { - return $this->threadPrinting; - } - - /** - * The <b>CategoryPrefixing</b> option specifies whether {@link Category} - * name is part of log output or not. This is true by default. - */ - public function setCategoryPrefixing($categoryPrefixing) { - $this->categoryPrefixing = LoggerOptionConverter::toBoolean($categoryPrefixing); - } - - /** - * @return boolean Returns value of the <b>CategoryPrefixing</b> option. - */ - public function getCategoryPrefixing() { - return $this->categoryPrefixing; - } - - /** - * 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 = LoggerOptionConverter::toBoolean($contextPrinting); - } - - /** - * @return boolean Returns value of the <b>ContextPrinting</b> option. - */ - public function getContextPrinting() { - return $this->contextPrinting; - } - - /** - * The <b>MicroSecondsPrinting</b> option specifies if microseconds infos - * should be printed at the end of timestamp. - * This is true by default. - */ - public function setMicroSecondsPrinting($microSecondsPrinting) { - $this->microSecondsPrinting = is_bool($microSecondsPrinting) ? - $microSecondsPrinting : - (bool)(strtolower($microSecondsPrinting) == 'true'); - } - - /** - * @return boolean Returns value of the <b>MicroSecondsPrinting</b> option. - */ - public function getMicroSecondsPrinting() { - return $this->microSecondsPrinting; - } - - - public function setDateFormat($dateFormat) { - $this->dateFormat = $dateFormat; - } - - /** - * @return string - */ - public function getDateFormat() { - return $this->dateFormat; - } - - /** - * In addition to the level of the statement and message, the - * returned string includes time, thread, category. - * <p>Time, thread, category are printed depending on options. - * - * @param LoggerLoggingEvent $event - * @return string - */ - public function format(LoggerLoggingEvent $event) { - $timeStamp = (float)$event->getTimeStamp(); - $format = strftime($this->dateFormat, (int)$timeStamp); - - if ($this->microSecondsPrinting) { - $usecs = floor(($timeStamp - (int)$timeStamp) * 1000); - $format .= sprintf(',%03d', $usecs); - } - - $format .= ' '; - - if ($this->threadPrinting) { - $format .= '['.getmypid().'] '; - } - - $level = $event->getLevel(); - $format .= $level.' '; - - if($this->categoryPrefixing) { - $format .= $event->getLoggerName().' '; - } - - if($this->contextPrinting) { - $ndc = $event->getNDC(); - if($ndc != null) { - $format .= $ndc.' '; - } - } - - $format .= '- '.$event->getRenderedMessage(); - $format .= PHP_EOL; - - return $format; - } - - public function ignoresThrowable() { - return true; - } + // Internal representation of options + protected $threadPrinting = true; + protected $categoryPrefixing = true; + protected $contextPrinting = true; + protected $microSecondsPrinting = true; + + /** + * @var string date format. See {@link PHP_MANUAL#strftime} for details + */ + protected $dateFormat = '%c'; + + /** + * Constructor + * + * @param string date format + * @see dateFormat + */ + public function __construct($dateFormat = '') { + if (!empty($dateFormat)) { + $this->dateFormat = $dateFormat; + } + return; + } + + /** + * The <b>ThreadPrinting</b> option specifies whether the name of the + * current thread is part of log output or not. This is true by default. + */ + public function setThreadPrinting($threadPrinting) { + $this->threadPrinting = is_bool($threadPrinting) ? + $threadPrinting : + (bool)(strtolower($threadPrinting) == 'true'); + } + + /** + * @return boolean Returns value of the <b>ThreadPrinting</b> option. + */ + public function getThreadPrinting() { + return $this->threadPrinting; + } + + /** + * The <b>CategoryPrefixing</b> option specifies whether {@link Category} + * name is part of log output or not. This is true by default. + */ + public function setCategoryPrefixing($categoryPrefixing) { + $this->categoryPrefixing = LoggerOptionConverter::toBoolean($categoryPrefixing); + } + + /** + * @return boolean Returns value of the <b>CategoryPrefixing</b> option. + */ + public function getCategoryPrefixing() { + return $this->categoryPrefixing; + } + + /** + * 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 = LoggerOptionConverter::toBoolean($contextPrinting); + } + + /** + * @return boolean Returns value of the <b>ContextPrinting</b> option. + */ + public function getContextPrinting() { + return $this->contextPrinting; + } + + /** + * The <b>MicroSecondsPrinting</b> option specifies if microseconds infos + * should be printed at the end of timestamp. + * This is true by default. + */ + public function setMicroSecondsPrinting($microSecondsPrinting) { + $this->microSecondsPrinting = is_bool($microSecondsPrinting) ? + $microSecondsPrinting : + (bool)(strtolower($microSecondsPrinting) == 'true'); + } + + /** + * @return boolean Returns value of the <b>MicroSecondsPrinting</b> option. + */ + public function getMicroSecondsPrinting() { + return $this->microSecondsPrinting; + } + + + public function setDateFormat($dateFormat) { + $this->dateFormat = $dateFormat; + } + + /** + * @return string + */ + public function getDateFormat() { + return $this->dateFormat; + } + + /** + * In addition to the level of the statement and message, the + * returned string includes time, thread, category. + * <p>Time, thread, category are printed depending on options. + * + * @param LoggerLoggingEvent $event + * @return string + */ + public function format(LoggerLoggingEvent $event) { + $timeStamp = (float)$event->getTimeStamp(); + $format = strftime($this->dateFormat, (int)$timeStamp); + + if ($this->microSecondsPrinting) { + $usecs = floor(($timeStamp - (int)$timeStamp) * 1000); + $format .= sprintf(',%03d', $usecs); + } + + $format .= ' '; + + if ($this->threadPrinting) { + $format .= '['.getmypid().'] '; + } + + $level = $event->getLevel(); + $format .= $level.' '; + + if($this->categoryPrefixing) { + $format .= $event->getLoggerName().' '; + } + + if($this->contextPrinting) { + $ndc = $event->getNDC(); + if($ndc != null) { + $format .= $ndc.' '; + } + } + + $format .= '- '.$event->getRenderedMessage(); + $format .= PHP_EOL; + + return $format; + } + + public function ignoresThrowable() { + return true; + } } Modified: logging/log4php/trunk/src/main/php/layouts/LoggerLayoutXml.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/layouts/LoggerLayoutXml.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/layouts/LoggerLayoutXml.php (original) +++ logging/log4php/trunk/src/main/php/layouts/LoggerLayoutXml.php Sat Jan 15 10:56:23 2011 @@ -36,12 +36,12 @@ * The above would print: * * <pre> - * <log4php:eventSet xmlns:log4php="http://logging.apache.org/log4php/" version="0.3" includesLocationInfo="true"> - * <log4php:event logger="root" level="INFO" thread="13802" timestamp="1252456226491"> - * <log4php:message><![CDATA[Hello World!]]></log4php:message> - * <log4php:locationInfo class="main" file="examples/php/layout_xml.php" line="6" method="main" /> - * </log4php:event> - * </log4php:eventSet> + * <log4php:eventSet xmlns:log4php="http://logging.apache.org/log4php/" version="0.3" includesLocationInfo="true"> + * <log4php:event logger="root" level="INFO" thread="13802" timestamp="1252456226491"> + * <log4php:message><![CDATA[Hello World!]]></log4php:message> + * <log4php:locationInfo class="main" file="examples/php/layout_xml.php" line="6" method="main" /> + * </log4php:event> + * </log4php:eventSet> * </pre> * * @version $Revision$ @@ -61,124 +61,124 @@ class LoggerLayoutXml extends LoggerLayo const CDATA_EMBEDDED_END = ']]>]]><![CDATA['; - /** - * If set to true then the file name and line number of the origin of the - * log statement will be output. - * - * @var boolean - */ - private $locationInfo = true; + /** + * If set to true then the file name and line number of the origin of the + * log statement will be output. + * + * @var boolean + */ + private $locationInfo = true; - /** - * @var boolean set the elements namespace - */ - private $log4jNamespace = false; - - - /** - * @var string namespace - * @private - */ - private $_namespace = self::LOG4PHP_NS; - - /** - * @var string namespace prefix - * @private - */ - private $_namespacePrefix = self::LOG4PHP_NS_PREFIX; - - /** - * No options to activate. - */ - public function activateOptions() { - if ($this->getLog4jNamespace()) { - $this->_namespace = self::LOG4J_NS; - $this->_namespacePrefix = self::LOG4J_NS_PREFIX; - } else { - $this->_namespace = self::LOG4PHP_NS; - $this->_namespacePrefix = self::LOG4PHP_NS_PREFIX; - } - } - - /** - * @return string - */ - public function getHeader() { - return "<{$this->_namespacePrefix}:eventSet ". - "xmlns:{$this->_namespacePrefix}=\"{$this->_namespace}\" ". - "version=\"0.3\" ". - "includesLocationInfo=\"".($this->getLocationInfo() ? "true" : "false")."\"". - ">\r\n"; - } - - /** - * Formats a {@link LoggerLoggingEvent} in conformance with the log4php.dtd. - * - * @param LoggerLoggingEvent $event - * @return string - */ - public function format(LoggerLoggingEvent $event) { - $loggerName = $event->getLoggerName(); - $timeStamp = number_format((float)($event->getTimeStamp() * 1000), 0, '', ''); - $thread = $event->getThreadName(); - $level = $event->getLevel(); - $levelStr = $level->toString(); - - $buf = "<{$this->_namespacePrefix}:event logger=\"{$loggerName}\" level=\"{$levelStr}\" thread=\"{$thread}\" timestamp=\"{$timeStamp}\">".PHP_EOL; - $buf .= "<{$this->_namespacePrefix}:message><![CDATA["; - $this->appendEscapingCDATA($buf, $event->getRenderedMessage()); - $buf .= "]]></{$this->_namespacePrefix}:message>".PHP_EOL; - - $ndc = $event->getNDC(); - if($ndc != null) { - $buf .= "<{$this->_namespacePrefix}:NDC><![CDATA["; - $this->appendEscapingCDATA($buf, $ndc); - $buf .= "]]></{$this->_namespacePrefix}:NDC>".PHP_EOL; - } - - if ($this->getLocationInfo()) { - $locationInfo = $event->getLocationInformation(); - $buf .= "<{$this->_namespacePrefix}:locationInfo ". - "class=\"" . $locationInfo->getClassName() . "\" ". - "file=\"" . htmlentities($locationInfo->getFileName(), ENT_QUOTES) . "\" ". - "line=\"" . $locationInfo->getLineNumber() . "\" ". - "method=\"" . $locationInfo->getMethodName() . "\" "; - $buf .= "/>".PHP_EOL; - - } - - $buf .= "</{$this->_namespacePrefix}:event>".PHP_EOL.PHP_EOL; - - return $buf; - - } - - /** - * @return string - */ - public function getFooter() { - return "</{$this->_namespacePrefix}:eventSet>\r\n"; - } - - - /** Whether or not file name and line number will be included in the output. - * - * @return boolean - */ - public function getLocationInfo() { - return $this->locationInfo; - } + /** + * @var boolean set the elements namespace + */ + private $log4jNamespace = false; + + + /** + * @var string namespace + * @private + */ + private $_namespace = self::LOG4PHP_NS; + + /** + * @var string namespace prefix + * @private + */ + private $_namespacePrefix = self::LOG4PHP_NS_PREFIX; + + /** + * No options to activate. + */ + public function activateOptions() { + if ($this->getLog4jNamespace()) { + $this->_namespace = self::LOG4J_NS; + $this->_namespacePrefix = self::LOG4J_NS_PREFIX; + } else { + $this->_namespace = self::LOG4PHP_NS; + $this->_namespacePrefix = self::LOG4PHP_NS_PREFIX; + } + } + + /** + * @return string + */ + public function getHeader() { + return "<{$this->_namespacePrefix}:eventSet ". + "xmlns:{$this->_namespacePrefix}=\"{$this->_namespace}\" ". + "version=\"0.3\" ". + "includesLocationInfo=\"".($this->getLocationInfo() ? "true" : "false")."\"". + ">\r\n"; + } + + /** + * Formats a {@link LoggerLoggingEvent} in conformance with the log4php.dtd. + * + * @param LoggerLoggingEvent $event + * @return string + */ + public function format(LoggerLoggingEvent $event) { + $loggerName = $event->getLoggerName(); + $timeStamp = number_format((float)($event->getTimeStamp() * 1000), 0, '', ''); + $thread = $event->getThreadName(); + $level = $event->getLevel(); + $levelStr = $level->toString(); + + $buf = "<{$this->_namespacePrefix}:event logger=\"{$loggerName}\" level=\"{$levelStr}\" thread=\"{$thread}\" timestamp=\"{$timeStamp}\">".PHP_EOL; + $buf .= "<{$this->_namespacePrefix}:message><![CDATA["; + $this->appendEscapingCDATA($buf, $event->getRenderedMessage()); + $buf .= "]]></{$this->_namespacePrefix}:message>".PHP_EOL; + + $ndc = $event->getNDC(); + if($ndc != null) { + $buf .= "<{$this->_namespacePrefix}:NDC><![CDATA["; + $this->appendEscapingCDATA($buf, $ndc); + $buf .= "]]></{$this->_namespacePrefix}:NDC>".PHP_EOL; + } + + if ($this->getLocationInfo()) { + $locationInfo = $event->getLocationInformation(); + $buf .= "<{$this->_namespacePrefix}:locationInfo ". + "class=\"" . $locationInfo->getClassName() . "\" ". + "file=\"" . htmlentities($locationInfo->getFileName(), ENT_QUOTES) . "\" ". + "line=\"" . $locationInfo->getLineNumber() . "\" ". + "method=\"" . $locationInfo->getMethodName() . "\" "; + $buf .= "/>".PHP_EOL; + + } + + $buf .= "</{$this->_namespacePrefix}:event>".PHP_EOL.PHP_EOL; + + return $buf; + + } + + /** + * @return string + */ + public function getFooter() { + return "</{$this->_namespacePrefix}:eventSet>\r\n"; + } + + + /** Whether or not file name and line number will be included in the output. + * + * @return boolean + */ + public function getLocationInfo() { + return $this->locationInfo; + } - /** - * The {@link $locationInfo} option takes a boolean value. By default, - * it is set to false which means there will be no location - * information output by this layout. If the the option is set to - * true, then the file name and line number of the statement at the - * origin of the log statement will be output. - */ - public function setLocationInfo($flag) { - $this->locationInfo = LoggerOptionConverter::toBoolean($flag, true); - } + /** + * The {@link $locationInfo} option takes a boolean value. By default, + * it is set to false which means there will be no location + * information output by this layout. If the the option is set to + * true, then the file name and line number of the statement at the + * origin of the log statement will be output. + */ + public function setLocationInfo($flag) { + $this->locationInfo = LoggerOptionConverter::toBoolean($flag, true); + } /** * @return boolean @@ -187,14 +187,14 @@ class LoggerLayoutXml extends LoggerLayo return $this->log4jNamespace; } - /** - * @param boolean - */ - public function setLog4jNamespace($flag) { - $this->log4jNamespace = LoggerOptionConverter::toBoolean($flag, true); - } - - /** + /** + * @param boolean + */ + public function setLog4jNamespace($flag) { + $this->log4jNamespace = LoggerOptionConverter::toBoolean($flag, true); + } + + /** * Ensures that embeded CDEnd strings (]]>) are handled properly * within message, NDC and throwable tag text. * Modified: logging/log4php/trunk/src/main/php/renderers/LoggerRendererException.php URL: http://svn.apache.org/viewvc/logging/log4php/trunk/src/main/php/renderers/LoggerRendererException.php?rev=1059292&r1=1059291&r2=1059292&view=diff ============================================================================== --- logging/log4php/trunk/src/main/php/renderers/LoggerRendererException.php (original) +++ logging/log4php/trunk/src/main/php/renderers/LoggerRendererException.php Sat Jan 15 10:56:23 2011 @@ -32,7 +32,7 @@ class LoggerRendererException implements $strRep .= PHP_EOL.$o->getTraceAsString(); if (method_exists($o, 'getPrevious') && $o->getPrevious() !== null) { - $strRep .= PHP_EOL.'Caused by: '.$this->render($o->getPrevious()); + $strRep .= PHP_EOL.'Caused by: '.$this->render($o->getPrevious()); } return $strRep;
