diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2015-11-12 17:30:32 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2015-11-12 17:30:32 +0100 |
commit | aff4aed43ccea159dae796e89e2684f967af7fa2 (patch) | |
tree | 6d7d7416c0e4a9cfbcf20f528f2d3b615dd4a30c | |
parent | 6dea6c9dd9b6d2aa78e068d1e4be0b35e1584031 (diff) | |
parent | d0464bf7724480d18d1f0b881acf83849d83b72d (diff) | |
download | nextcloud-server-aff4aed43ccea159dae796e89e2684f967af7fa2.tar.gz nextcloud-server-aff4aed43ccea159dae796e89e2684f967af7fa2.zip |
Merge pull request #20472 from owncloud/switch-ch-log_with_ms_precision
enable microseconds in log timestamps
-rw-r--r-- | lib/private/log/owncloud.php | 2 | ||||
-rw-r--r-- | tests/lib/log/owncloud.php | 67 |
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); + + } + + +} |