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


Reply via email to