summaryrefslogtreecommitdiff
path: root/src/mongo/logv2/json_formatter.cpp
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2020-01-24 11:17:59 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-01-28 00:05:44 +0000
commit24f2cf176a6401afcbb2280e4f0a7a016854464c (patch)
tree8d4dbff46b72ecf8f6012b6bcc4010fa5a099cc5 /src/mongo/logv2/json_formatter.cpp
parent582a071fa36630d302a25c9a6aec992fcd07a1e5 (diff)
downloadmongo-24f2cf176a6401afcbb2280e4f0a7a016854464c.tar.gz
SERVER-45755 Special formatting for duration type in logv2
Unit suffix gets appended to attribute name when creating JSON field name.
Diffstat (limited to 'src/mongo/logv2/json_formatter.cpp')
-rw-r--r--src/mongo/logv2/json_formatter.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/logv2/json_formatter.cpp b/src/mongo/logv2/json_formatter.cpp
index d70caf693b9..7fecf7c0f62 100644
--- a/src/mongo/logv2/json_formatter.cpp
+++ b/src/mongo/logv2/json_formatter.cpp
@@ -102,6 +102,13 @@ struct JSONValueExtractor {
storeQuoted(name, value);
}
+ template <typename Period>
+ void operator()(StringData name, const Duration<Period>& value) {
+ fmt::format_to(
+ _buffer, R"({}"{}{}":{})", _separator, name, value.mongoUnitSuffix(), value.count());
+ _separator = ","_sd;
+ }
+
template <typename T>
void operator()(StringData name, const T& value) {
storeUnquotedValue(name, value);