summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/log/owncloud.php2
-rw-r--r--tests/lib/log/owncloud.php67
2 files changed, 68 insertions, 1 deletions
diff --git a/lib/private/log/owncloud.php b/lib/private/log/owncloud.php
index c98f21208bb..1af989588d1 100644
--- a/lib/private/log/owncloud.php
+++ b/lib/private/log/owncloud.php
@@ -72,7 +72,7 @@ class OC_Log_Owncloud {
} catch (Exception $e) {
$timezone = new DateTimeZone('UTC');
}
- $time = new DateTime(null, $timezone);
+ $time = DateTime::createFromFormat("U.u", microtime(true), $timezone);
$request = \OC::$server->getRequest();
$reqId = $request->getId();
$remoteAddr = $request->getRemoteAddress();
diff --git a/tests/lib/log/owncloud.php b/tests/lib/log/owncloud.php
new file mode 100644
index 00000000000..d977583612b
--- /dev/null
+++ b/tests/lib/log/owncloud.php
@@ -0,0 +1,67 @@
+<?php
+/**
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+class Test_Log_Owncloud extends Test\TestCase
+{
+ private $restore_logfile;
+ private $restore_logdateformat;
+
+ protected function setUp() {
+ parent::setUp();
+ $restore_logfile = OC_Config::getValue("logfile");
+ $restore_logdateformat = OC_Config::getValue('logdateformat');
+
+ OC_Config::setValue("logfile", OC_Config::getValue('datadirectory') . "/logtest");
+ OC_Log_Owncloud::init();
+ }
+ protected function tearDown() {
+ if (isset($this->restore_logfile)) {
+ OC_Config::setValue("logfile", $this->restore_logfile);
+ } else {
+ OC_Config::deleteKey("logfile");
+ }
+ if (isset($this->restore_logdateformat)) {
+ OC_Config::setValue("logdateformat", $this->restore_logdateformat);
+ } else {
+ OC_Config::deleteKey("restore_logdateformat");
+ }
+ OC_Log_Owncloud::init();
+ parent::tearDown();
+ }
+
+ public function testMicrosecondsLogTimestamp() {
+ # delete old logfile
+ unlink(OC_Config::getValue('logfile'));
+
+ # set format & write log line
+ OC_Config::setValue('logdateformat', 'u');
+ OC_Log_Owncloud::write('test', 'message', \OCP\Util::ERROR);
+
+ # read log line
+ $handle = @fopen(OC_Config::getValue('logfile'), 'r');
+ $line = fread($handle, 1000);
+ fclose($handle);
+
+ # check timestamp has microseconds part
+ $values = (array) json_decode($line);
+ $microseconds = $values['time'];
+ $this->assertNotEquals(0, $microseconds);
+
+ }
+
+
+}