]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
log/LogClock: render timestamp in ISO 8601 format
authorSage Weil <sage@redhat.com>
Thu, 25 Apr 2019 22:36:26 +0000 (17:36 -0500)
committerSage Weil <sage@redhat.com>
Wed, 29 May 2019 19:12:01 +0000 (14:12 -0500)
Signed-off-by: Sage Weil <sage@redhat.com>
src/log/LogClock.h
src/log/test.cc

index 5cd4e77d8fe8da88ec9de273f53f2a0268099439..98d8c17f7ed7365ed187943f51643d194b45513c 100644 (file)
@@ -131,18 +131,20 @@ inline int append_time(const log_time& t, char *out, int outlen) {
   auto tv = log_clock::to_timeval(t);
   std::tm bdt;
   localtime_r(&tv.tv_sec, &bdt);
+  char tz[32] = { 0 };
+  strftime(tz, sizeof(tz), "%z", &bdt);
 
   int r;
   if (coarse) {
-    r = std::snprintf(out, outlen, "%04d-%02d-%02d %02d:%02d:%02d.%03ld",
+    r = std::snprintf(out, outlen, "%04d-%02d-%02dT%02d:%02d:%02d.%03ld%s",
                      bdt.tm_year + 1900, bdt.tm_mon + 1, bdt.tm_mday,
                      bdt.tm_hour, bdt.tm_min, bdt.tm_sec,
-                     static_cast<long>(tv.tv_usec / 1000));
+                     static_cast<long>(tv.tv_usec / 1000), tz);
   } else {
-    r = std::snprintf(out, outlen, "%04d-%02d-%02d %02d:%02d:%02d.%06ld",
+    r = std::snprintf(out, outlen, "%04d-%02d-%02dT%02d:%02d:%02d.%06ld%s",
                      bdt.tm_year + 1900, bdt.tm_mon + 1, bdt.tm_mday,
                      bdt.tm_hour, bdt.tm_min, bdt.tm_sec,
-                     static_cast<long>(tv.tv_usec));
+                     static_cast<long>(tv.tv_usec), tz);
   }
   // Since our caller just adds the return value to something without
   // checking it…
index 52fbb284c9ca77ba80cb437875e7f4a51396665f..5549e8d048bce98f41ae5b350d7ddccfc8f6c71c 100644 (file)
@@ -268,7 +268,7 @@ TEST(Log, TimeFormat)
     ceph::logging::append_time(t, buf, buflen);
     auto c = std::strrchr(buf, '.');
     ASSERT_NE(c, nullptr);
-    ASSERT_EQ(3u, strlen(c + 1));
+    ASSERT_EQ(8u, strlen(c + 1));
   }
   {
     clock.refine();
@@ -276,7 +276,7 @@ TEST(Log, TimeFormat)
     ceph::logging::append_time(t, buf, buflen);
     auto c = std::strrchr(buf, '.');
     ASSERT_NE(c, nullptr);
-    ASSERT_EQ(6u, std::strlen(c + 1));
+    ASSERT_EQ(11u, std::strlen(c + 1));
   }
 }