diff options
author | BobTheBob <32057864+BobTheBob9@users.noreply.github.com> | 2023-02-06 00:25:06 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-06 01:25:06 +0100 |
commit | 31a05c35e60b844cf806b146a4889f79272ed749 (patch) | |
tree | a82c6120efea90455ab9a2143e7602cee2c6d476 | |
parent | f7b7de8a584b877b9bf05fe63a0b0f91c7a5e944 (diff) | |
download | NorthstarLauncher-1.12.1.tar.gz NorthstarLauncher-1.12.1.zip |
Flush loggers properly on dedicated server shutdown (#413)v1.12.2-rc1v1.12.2v1.12.1-rc1v1.12.1
flush loggers properly on dedicated server shutdown
-rw-r--r-- | NorthstarDLL/dedicated/dedicated.cpp | 3 | ||||
-rw-r--r-- | NorthstarDLL/logging/crashhandler.cpp | 2 | ||||
-rw-r--r-- | NorthstarDLL/logging/logging.cpp | 8 | ||||
-rw-r--r-- | NorthstarDLL/logging/logging.h | 2 |
4 files changed, 15 insertions, 0 deletions
diff --git a/NorthstarDLL/dedicated/dedicated.cpp b/NorthstarDLL/dedicated/dedicated.cpp index 8f6f8fe6..3d7d756c 100644 --- a/NorthstarDLL/dedicated/dedicated.cpp +++ b/NorthstarDLL/dedicated/dedicated.cpp @@ -278,7 +278,10 @@ void, __fastcall, (void* sqvm)) // atm, this will crash if not aborted, so this just closes more gracefully static ConVar* Cvar_fatal_script_errors = g_pCVar->FindVar("fatal_script_errors"); if (Cvar_fatal_script_errors->GetBool()) + { + NS::log::FlushLoggers(); abort(); + } } ON_DLL_LOAD_DEDI("server.dll", DedicatedServerGameDLL, (CModule module)) diff --git a/NorthstarDLL/logging/crashhandler.cpp b/NorthstarDLL/logging/crashhandler.cpp index d4a54169..1e9bf4b3 100644 --- a/NorthstarDLL/logging/crashhandler.cpp +++ b/NorthstarDLL/logging/crashhandler.cpp @@ -72,6 +72,8 @@ void PrintExceptionLog(ExceptionLog& exc) "Northstar has crashed! Crash info can be found in R2Northstar/logs", "Northstar has crashed!", MB_ICONERROR | MB_OK | MB_SYSTEMMODAL); + + NS::log::FlushLoggers(); } std::string GetExceptionName(ExceptionLog& exc) diff --git a/NorthstarDLL/logging/logging.cpp b/NorthstarDLL/logging/logging.cpp index 6bb57170..8b906911 100644 --- a/NorthstarDLL/logging/logging.cpp +++ b/NorthstarDLL/logging/logging.cpp @@ -203,3 +203,11 @@ void InitialiseLogging() loggers.push_back(NS::log::rpak); loggers.push_back(NS::log::echo); } + +void NS::log::FlushLoggers() +{ + for (auto& logger : loggers) + logger->flush(); + + spdlog::default_logger()->flush(); +} diff --git a/NorthstarDLL/logging/logging.h b/NorthstarDLL/logging/logging.h index b710915e..2cccdde6 100644 --- a/NorthstarDLL/logging/logging.h +++ b/NorthstarDLL/logging/logging.h @@ -100,6 +100,8 @@ namespace NS::log extern std::shared_ptr<ColoredLogger> echo; extern std::shared_ptr<ColoredLogger> NORTHSTAR; + + void FlushLoggers(); }; // namespace NS::log void RegisterCustomSink(std::shared_ptr<CustomSink> sink); |