diff options
Diffstat (limited to 'src/mongo/db/initialize_server_global_state.cpp')
-rw-r--r-- | src/mongo/db/initialize_server_global_state.cpp | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp index 1a7d2277cfb..174a7d1cddd 100644 --- a/src/mongo/db/initialize_server_global_state.cpp +++ b/src/mongo/db/initialize_server_global_state.cpp @@ -231,10 +231,13 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, "Syslog requested in Windows build; command line processor logic error"); #else std::unique_ptr<logger::Appender<MessageEventEphemeral>> appender; + std::unique_ptr<logger::Appender<MessageEventEphemeral>> javascriptAppender; if (serverGlobalParams.logV2) { appender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>( &(lv2Manager.getGlobalDomain())); + javascriptAppender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>( + &(lv2Manager.getGlobalDomain())); lv2Config._consoleEnabled = false; lv2Config._syslogEnabled = true; @@ -246,13 +249,13 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, openlog( strdup(sb.str().c_str()), LOG_PID | LOG_CONS, serverGlobalParams.syslogFacility); appender = std::make_unique<SyslogAppender<MessageEventEphemeral>>( - std::make_unique<logger::MessageEventDetailsEncoder>()); - manager->getNamedDomain("javascriptOutput") - ->attachAppender(std::make_unique<SyslogAppender<MessageEventEphemeral>>( - std::make_unique<logger::MessageEventDetailsEncoder>())); + std::make_unique<MessageEventDetailsEncoder>()); + javascriptAppender = std::make_unique<SyslogAppender<MessageEventEphemeral>>( + std::make_unique<MessageEventDetailsEncoder>()); } manager->getGlobalDomain()->clearAppenders(); manager->getGlobalDomain()->attachAppender(std::move(appender)); + manager->getNamedDomain("javascriptOutput")->attachAppender(std::move(javascriptAppender)); #endif // defined(_WIN32) } else if (!serverGlobalParams.logpath.empty()) { @@ -297,11 +300,14 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, } std::unique_ptr<logger::Appender<MessageEventEphemeral>> appender; + std::unique_ptr<logger::Appender<MessageEventEphemeral>> javascriptAppender; if (serverGlobalParams.logV2) { appender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>( &(lv2Manager.getGlobalDomain())); + javascriptAppender = std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>( + &(lv2Manager.getGlobalDomain())); lv2Config._consoleEnabled = false; lv2Config._fileEnabled = true; @@ -329,9 +335,8 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, } appender = std::make_unique<RotatableFileAppender<MessageEventEphemeral>>( std::make_unique<MessageEventDetailsEncoder>(), writer.getValue()); - manager->getNamedDomain("javascriptOutput") - ->attachAppender(std::make_unique<RotatableFileAppender<MessageEventEphemeral>>( - std::make_unique<MessageEventDetailsEncoder>(), writer.getValue())); + javascriptAppender = std::make_unique<RotatableFileAppender<MessageEventEphemeral>>( + std::make_unique<MessageEventDetailsEncoder>(), writer.getValue()); if (serverGlobalParams.logAppend && exists) { log() << "***** SERVER RESTARTED *****"; Status status = logger::RotatableFileWriter::Use(writer.getValue()).status(); @@ -342,6 +347,7 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, manager->getGlobalDomain()->clearAppenders(); manager->getGlobalDomain()->attachAppender(std::move(appender)); + manager->getNamedDomain("javascriptOutput")->attachAppender(std::move(javascriptAppender)); } else { if (serverGlobalParams.logV2) { @@ -349,6 +355,9 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, manager->getGlobalDomain()->attachAppender( std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>( &(lv2Manager.getGlobalDomain()))); + manager->getNamedDomain("javascriptOutput") + ->attachAppender(std::make_unique<logger::LogV2Appender<MessageEventEphemeral>>( + &(lv2Manager.getGlobalDomain()))); } else { logger::globalLogManager() ->getNamedDomain("javascriptOutput") @@ -356,9 +365,11 @@ MONGO_INITIALIZER_GENERAL(ServerLogRedirection, std::make_unique<MessageEventDetailsEncoder>())); } } + if (!serverGlobalParams.logV2) { + logger::globalLogDomain()->attachAppender( + std::make_unique<RamLogAppender>(RamLog::get("global"))); + } - logger::globalLogDomain()->attachAppender( - std::make_unique<RamLogAppender>(RamLog::get("global"))); if (serverGlobalParams.logV2) { lv2Config._format = serverGlobalParams.logFormat; |