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