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());
}