diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2020-01-17 01:50:09 +0000 |
---|---|---|
committer | A. Jesse Jiryu Davis <jesse@mongodb.com> | 2020-01-27 15:40:36 -0500 |
commit | 8b4fe7ff5db8a660fa3035564fa30d071f154192 (patch) | |
tree | 3c42544e30c48e8806c011f1ebbb80107c77e05f | |
parent | 821b4198bcf3862b3cb06be8115e6fca0b902cef (diff) | |
download | mongo-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.cpp | 12 | ||||
-rw-r--r-- | src/mongo/logger/logv2_appender.h | 9 | ||||
-rw-r--r-- | src/mongo/shell/dbshell.cpp | 6 |
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(), |