summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2020-02-11 14:29:17 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-02-13 21:14:48 +0000
commit1de33fe9efad7ebc9a40c515131fc33b8e284c6a (patch)
treee42bf6f50a0c56d5292a31682d88e99346edd51e /src/mongo/db
parent9aa9fa4a2844f0fe7890e01d621960a0c64607f6 (diff)
downloadmongo-1de33fe9efad7ebc9a40c515131fc33b8e284c6a.tar.gz
SERVER-42722 Implement --timeStampFormat in logv2.
Removed option for ctime as it is not allowed in Extended JSON.
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/initialize_server_global_state.cpp14
-rw-r--r--src/mongo/db/server_options.h2
-rw-r--r--src/mongo/db/server_options_base.idl2
-rw-r--r--src/mongo/db/server_options_helpers.cpp8
4 files changed, 15 insertions, 11 deletions
diff --git a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp
index db4f894e815..b7f7a3f854c 100644
--- a/src/mongo/db/initialize_server_global_state.cpp
+++ b/src/mongo/db/initialize_server_global_state.cpp
@@ -28,6 +28,7 @@
*/
#define MONGO_LOG_DEFAULT_COMPONENT ::mongo::logger::LogComponent::kControl
+#define MONGO_LOGV2_DEFAULT_COMPONENT ::mongo::logv2::LogComponent::kControl
#include "mongo/platform/basic.h"
@@ -226,6 +227,7 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection,
logv2::LogDomainGlobal::ConfigurationOptions lv2Config;
MessageEventDetailsEncoder::setMaxLogSizeKBSource(gMaxLogAttributeSizeKB);
lv2Config.maxAttributeSizeKB = &gMaxLogAttributeSizeKB;
+ bool writeServerRestartedAfterLogConfig = false;
if (serverGlobalParams.logWithSyslog) {
#ifdef _WIN32
@@ -324,11 +326,7 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection,
: logv2::LogDomainGlobal::ConfigurationOptions::OpenMode::kTruncate;
if (serverGlobalParams.logAppend && exists) {
- LOGV2(20698, "***** SERVER RESTARTED *****");
- // FIXME rewrite for logv2
- // Status status = logger::RotatableFileWriter::Use(writer.getValue()).status();
- // if (!status.isOK())
- // return status;
+ writeServerRestartedAfterLogConfig = true;
}
} else {
@@ -377,7 +375,11 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection,
if (logV2Enabled()) {
lv2Config.format = serverGlobalParams.logFormat;
- return lv2Manager.getGlobalDomainInternal().configure(lv2Config);
+ lv2Config.timestampFormat = serverGlobalParams.logTimestampFormat;
+ Status result = lv2Manager.getGlobalDomainInternal().configure(lv2Config);
+ if (result.isOK() && writeServerRestartedAfterLogConfig)
+ LOGV2(20698, "***** SERVER RESTARTED *****");
+ return result;
}
return Status::OK();
diff --git a/src/mongo/db/server_options.h b/src/mongo/db/server_options.h
index 076f8decb87..12913018092 100644
--- a/src/mongo/db/server_options.h
+++ b/src/mongo/db/server_options.h
@@ -99,6 +99,8 @@ struct ServerGlobalParams {
std::string logpath; // Path to log file, if logging to a file; otherwise, empty.
logv2::LogFormat logFormat = logv2::LogFormat::kDefault; // Log format to output to
+ logv2::LogTimestampFormat logTimestampFormat = logv2::LogTimestampFormat::kISO8601Local;
+
bool logAppend = false; // True if logging to a file in append mode.
bool logRenameOnRotate = true; // True if logging should rename log files on rotate
bool logWithSyslog = false; // True if logging to syslog; must not be set if logpath is set.
diff --git a/src/mongo/db/server_options_base.idl b/src/mongo/db/server_options_base.idl
index aa150ec5d08..fcf7a88047f 100644
--- a/src/mongo/db/server_options_base.idl
+++ b/src/mongo/db/server_options_base.idl
@@ -140,7 +140,7 @@ configs:
short_name: logRotate
arg_vartype: String
'systemLog.timeStampFormat':
- description: Desired format for timestamps in log messages. One of ctime, iso8601-utc or iso8601-local
+ description: Desired format for timestamps in log messages. One of iso8601-utc or iso8601-local
short_name: timeStampFormat
arg_vartype: String
diff --git a/src/mongo/db/server_options_helpers.cpp b/src/mongo/db/server_options_helpers.cpp
index 5fc7039d866..116f46a2413 100644
--- a/src/mongo/db/server_options_helpers.cpp
+++ b/src/mongo/db/server_options_helpers.cpp
@@ -312,15 +312,15 @@ Status storeBaseOptions(const moe::Environment& params) {
if (params.count("systemLog.timeStampFormat")) {
using logger::MessageEventDetailsEncoder;
std::string formatterName = params["systemLog.timeStampFormat"].as<string>();
- if (formatterName == "ctime") {
- MessageEventDetailsEncoder::setDateFormatter(outputDateAsCtime);
- } else if (formatterName == "iso8601-utc") {
+ if (formatterName == "iso8601-utc") {
MessageEventDetailsEncoder::setDateFormatter(outputDateAsISOStringUTC);
+ serverGlobalParams.logTimestampFormat = logv2::LogTimestampFormat::kISO8601UTC;
} else if (formatterName == "iso8601-local") {
MessageEventDetailsEncoder::setDateFormatter(outputDateAsISOStringLocal);
+ serverGlobalParams.logTimestampFormat = logv2::LogTimestampFormat::kISO8601Local;
} else {
StringBuilder sb;
- sb << "Value of logTimestampFormat must be one of ctime, iso8601-utc "
+ sb << "Value of logTimestampFormat must be one of iso8601-utc "
<< "or iso8601-local; not \"" << formatterName << "\".";
return Status(ErrorCodes::BadValue, sb.str());
}