summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2020-01-17 01:50:09 +0000
committerA. Jesse Jiryu Davis <jesse@mongodb.com>2020-01-27 15:40:36 -0500
commit8b4fe7ff5db8a660fa3035564fa30d071f154192 (patch)
tree3c42544e30c48e8806c011f1ebbb80107c77e05f
parent821b4198bcf3862b3cb06be8115e6fca0b902cef (diff)
downloadmongo-8b4fe7ff5db8a660fa3035564fa30d071f154192.tar.gz
SERVER-45619 Fix so logv1 to v2 appender does not output large log warning in shell
-rw-r--r--src/mongo/db/initialize_server_global_state.cpp12
-rw-r--r--src/mongo/logger/logv2_appender.h9
-rw-r--r--src/mongo/shell/dbshell.cpp6
3 files changed, 15 insertions, 12 deletions
diff --git a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp
index 41e092f9498..f0105085c30 100644
--- a/src/mongo/db/initialize_server_global_state.cpp
+++ b/src/mongo/db/initialize_server_global_state.cpp
@@ -235,9 +235,9 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection,
if (logV2Enabled()) {
appender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain()));
+ &(lv2Manager.getGlobalDomain()), true);
javascriptAppender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain()));
+ &(lv2Manager.getGlobalDomain()), true);
lv2Config._consoleEnabled = false;
lv2Config._syslogEnabled = true;
@@ -305,9 +305,9 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection,
if (logV2Enabled()) {
appender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain()));
+ &(lv2Manager.getGlobalDomain()), true);
javascriptAppender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain()));
+ &(lv2Manager.getGlobalDomain()), true);
lv2Config._consoleEnabled = false;
lv2Config._fileEnabled = true;
@@ -354,10 +354,10 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection,
manager->getGlobalDomain()->clearAppenders();
manager->getGlobalDomain()->attachAppender(
std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain())));
+ &(lv2Manager.getGlobalDomain()), true));
manager->getNamedDomain("plainShellOutput")
->attachAppender(std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain())));
+ &(lv2Manager.getGlobalDomain()), true));
} else {
logger::globalLogManager()
->getNamedDomain("plainShellOutput")
diff --git a/src/mongo/logger/logv2_appender.h b/src/mongo/logger/logv2_appender.h
index c6050e9b4a2..abfb31d863e 100644
--- a/src/mongo/logger/logv2_appender.h
+++ b/src/mongo/logger/logv2_appender.h
@@ -68,8 +68,10 @@ public:
LogV2Appender(const LogV2Appender&) = delete;
LogV2Appender& operator=(const LogV2Appender&) = delete;
- explicit LogV2Appender(logv2::LogDomain* domain, logv2::LogTag extraTag = logv2::LogTag::kNone)
- : _domain(domain), _tag(extraTag) {}
+ explicit LogV2Appender(logv2::LogDomain* domain,
+ bool warnOnLargeMessages,
+ logv2::LogTag extraTag = logv2::LogTag::kNone)
+ : _domain(domain), _tag(extraTag), _warnOnLargeMessages(warnOnLargeMessages) {}
Status append(const Event& event) override {
@@ -80,7 +82,7 @@ public:
}
size_t maxSizeKB = MessageEventDetailsEncoder::getMaxLogSizeKB();
- if (event.isTruncatable() && message.size() > maxSizeKB * 1024) {
+ if (_warnOnLargeMessages && event.isTruncatable() && message.size() > maxSizeKB * 1024) {
logv2::detail::doLog(
0,
logv2::LogSeverity::cast(event.getSeverity().toInt()),
@@ -118,6 +120,7 @@ public:
private:
logv2::LogDomain* _domain;
logv2::LogTag _tag;
+ bool _warnOnLargeMessages;
};
} // namespace logger
diff --git a/src/mongo/shell/dbshell.cpp b/src/mongo/shell/dbshell.cpp
index 5561204f714..a106a040a26 100644
--- a/src/mongo/shell/dbshell.cpp
+++ b/src/mongo/shell/dbshell.cpp
@@ -735,7 +735,7 @@ int _main(int argc, char* argv[], char** envp) {
logger::globalLogManager()->getGlobalDomain()->clearAppenders();
logger::globalLogManager()->getGlobalDomain()->attachAppender(
std::make_unique<logger::LogV2Appender<logger::MessageEventEphemeral>>(
- &lv2Manager.getGlobalDomain()));
+ &lv2Manager.getGlobalDomain(), false));
} else {
logger::globalLogManager()->getGlobalDomain()->clearAppenders();
logger::globalLogManager()->getGlobalDomain()->attachAppender(
@@ -779,11 +779,11 @@ int _main(int argc, char* argv[], char** envp) {
logger::globalLogManager()->getGlobalDomain()->clearAppenders();
logger::globalLogManager()->getGlobalDomain()->attachAppender(
std::make_unique<logger::LogV2Appender<logger::MessageEventEphemeral>>(
- &(lv2Manager.getGlobalDomain())));
+ &(lv2Manager.getGlobalDomain()), false));
logger::globalLogManager()
->getNamedDomain("plainShellOutput")
->attachAppender(std::make_unique<logger::LogV2Appender<logger::MessageEventEphemeral>>(
- &lv2Manager.getGlobalDomain(), logv2::LogTag::kPlainShell));
+ &lv2Manager.getGlobalDomain(), false, logv2::LogTag::kPlainShell));
auto consoleSink = boost::make_shared<boost::log::sinks::synchronous_sink<ShellBackend>>();
consoleSink->set_filter(logv2::ComponentSettingsFilter(lv2Manager.getGlobalDomain(),