From: Sage Weil Date: Thu, 25 Apr 2019 22:36:26 +0000 (-0500) Subject: log/LogClock: render timestamp in ISO 8601 format X-Git-Tag: v15.1.0~2616^2~10 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=8f4811c3cb1a069e7bbc217d56653e1e62804fcc;p=ceph-ci.git log/LogClock: render timestamp in ISO 8601 format Signed-off-by: Sage Weil --- diff --git a/src/log/LogClock.h b/src/log/LogClock.h index 5cd4e77d8fe..98d8c17f7ed 100644 --- a/src/log/LogClock.h +++ b/src/log/LogClock.h @@ -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(tv.tv_usec / 1000)); + static_cast(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(tv.tv_usec)); + static_cast(tv.tv_usec), tz); } // Since our caller just adds the return value to something without // checking it… diff --git a/src/log/test.cc b/src/log/test.cc index 52fbb284c9c..5549e8d048b 100644 --- a/src/log/test.cc +++ b/src/log/test.cc @@ -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)); } }