You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4php-dev@logging.apache.org by ji...@apache.org on 2008/09/26 15:39:08 UTC
svn commit: r699319 -
/incubator/log4php/trunk/src/main/php/helpers/LoggerPatternConverter.php
Author: jim
Date: Fri Sep 26 06:39:07 2008
New Revision: 699319
URL: http://svn.apache.org/viewvc?rev=699319&view=rev
Log:
Date pattern %d conversion is invalid.
--------------------------------------
Key: LOG4PHP-18
URL: https://issues.apache.org/jira/browse/LOG4PHP-18
Project: Log4php
Issue Type: Bug
Environment: log4php r692607,
PHP 5.2.4-2ubuntu5.3 with Suhosin-Patch 0.9.6.2,
Ubuntu 8.04
Reporter: Yomei Komiya
Date pattern %d conversion includes fragile regular expression and arbitrary substitute of ','.
So user definition pattern (%d{format}) is not converted well.
Modified:
incubator/log4php/trunk/src/main/php/helpers/LoggerPatternConverter.php
Modified: incubator/log4php/trunk/src/main/php/helpers/LoggerPatternConverter.php
URL: http://svn.apache.org/viewvc/incubator/log4php/trunk/src/main/php/helpers/LoggerPatternConverter.php?rev=699319&r1=699318&r2=699319&view=diff
==============================================================================
--- incubator/log4php/trunk/src/main/php/helpers/LoggerPatternConverter.php (original)
+++ incubator/log4php/trunk/src/main/php/helpers/LoggerPatternConverter.php Fri Sep 26 06:39:07 2008
@@ -289,8 +289,8 @@
{
$timeStamp = $event->getTimeStamp();
$usecs = round(($timeStamp - (int)$timeStamp) * 1000);
- $this->df = str_replace("\u", "u", ereg_replace("[^\\]u", sprintf(',%03d', $usecs), $this->df));
-
+ $this->df = preg_replace('/((?<!\\\\)(?:\\\\{2})*)u/', '${1}' . sprintf('%03d', $usecs), $this->df);
+
return date($this->df, $event->getTimeStamp());
}