diff options
Diffstat (limited to 'system/core/Log.php')
-rw-r--r-- | system/core/Log.php | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/system/core/Log.php b/system/core/Log.php index ab8ae2857..ccaaf4b9a 100644 --- a/system/core/Log.php +++ b/system/core/Log.php @@ -198,12 +198,20 @@ class CI_Log { return FALSE; } - // Instantiate DateTime with microseconds accuracy to allow proper use of "u" character in date format - $t = microtime(true); - $micro = sprintf("%06d",($t - floor($t)) * 1000000); - $date = new DateTime(date('Y-m-d H:i:s.'.$micro, $t)); + // Instantiating DateTime with microseconds appended to initial date is needed for proper support of this format + if (strpos($this->_date_fmt, 'u') !== FALSE) + { + $microtime_full = microtime(TRUE); + $microtime_short = sprintf("%06d", ($microtime_full - floor($microtime_full)) * 1000000); + $date = new DateTime(date('Y-m-d H:i:s.'.$microtime_short, $microtime_full)); + $date = $date->format($this->_date_fmt); + } + else + { + $date = date($this->_date_fmt); + } - $message .= $level.' - '.$date->format($this->_date_fmt).' --> '.$msg."\n"; + $message .= $level.' - '.$date.' --> '.$msg."\n"; flock($fp, LOCK_EX); |