aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarichello <artur@barichello.me>2022-01-14 10:34:03 -0300
committerBarichello <artur@barichello.me>2022-01-14 10:34:03 -0300
commitc9d66513a85d5325d3d002ca16c82d8302ec0ea2 (patch)
tree4c4ab3ac8ed6d17343c3be1fcf17d1e31b87b68c
parentd545b3d7d4eb02a84fa7cb9ce1ff591c81b08707 (diff)
downloadNorthstarLauncher-c9d66513a85d5325d3d002ca16c82d8302ec0ea2.tar.gz
NorthstarLauncher-c9d66513a85d5325d3d002ca16c82d8302ec0ea2.zip
Add command line arg to disable logs
-rw-r--r--NorthstarDedicatedTest/dllmain.cpp3
-rw-r--r--NorthstarDedicatedTest/logging.cpp37
-rw-r--r--NorthstarDedicatedTest/logging.h1
3 files changed, 24 insertions, 17 deletions
diff --git a/NorthstarDedicatedTest/dllmain.cpp b/NorthstarDedicatedTest/dllmain.cpp
index 856b2992..eb4b8936 100644
--- a/NorthstarDedicatedTest/dllmain.cpp
+++ b/NorthstarDedicatedTest/dllmain.cpp
@@ -76,9 +76,8 @@ bool InitialiseNorthstar()
curl_global_init_mem(CURL_GLOBAL_DEFAULT, _malloc_base, _free_base, _realloc_base, _strdup_base, _calloc_base);
InitialiseLogging();
-
- // apply initial hooks
InstallInitialHooks();
+ CreateLogFiles();
InitialiseInterfaceCreationHooks();
AddDllLoadCallback("tier0.dll", InitialiseTier0GameUtilFunctions);
diff --git a/NorthstarDedicatedTest/logging.cpp b/NorthstarDedicatedTest/logging.cpp
index 2592cb3e..235bfe2e 100644
--- a/NorthstarDedicatedTest/logging.cpp
+++ b/NorthstarDedicatedTest/logging.cpp
@@ -10,6 +10,27 @@
#include <Psapi.h>
#include <minidumpapiset.h>
+
+// This needs to be called after hooks are loaded so we can access the command line args
+void CreateLogFiles()
+{
+ if (strstr(GetCommandLineA(), "-disablelogs"))
+ {
+ spdlog::default_logger()->set_level(spdlog::level::off);
+ }
+ else
+ {
+ // todo: might be good to delete logs that are too old
+ time_t time = std::time(nullptr);
+ tm currentTime = *std::localtime(&time);
+ std::stringstream stream;
+
+ stream << std::put_time(&currentTime, "R2Northstar/logs/nslog%Y-%m-%d %H-%M-%S.txt");
+ spdlog::default_logger()->sinks().push_back(std::make_shared<spdlog::sinks::basic_file_sink_mt>(stream.str(), false));
+ spdlog::flush_on(spdlog::level::info);
+ }
+}
+
long __stdcall ExceptionFilter(EXCEPTION_POINTERS* exceptionInfo)
{
static bool logged = false;
@@ -171,8 +192,7 @@ long __stdcall ExceptionFilter(EXCEPTION_POINTERS* exceptionInfo)
spdlog::error("Failed to write minidump file {}!", stream.str());
if (!IsDedicated())
- MessageBoxA(0, "Northstar has crashed! A crash log and dump can be found in R2Northstar/logs", "Northstar has crashed!", MB_ICONERROR | MB_OK);
-
+ MessageBoxA(0, "Northstar has crashed! Crash info can be found in R2Northstar/logs", "Northstar has crashed!", MB_ICONERROR | MB_OK);
}
logged = true;
@@ -187,20 +207,7 @@ void InitialiseLogging()
AllocConsole();
freopen("CONOUT$", "w", stdout);
freopen("CONOUT$", "w", stderr);
-
spdlog::default_logger()->set_pattern("[%H:%M:%S] [%l] %v");
- spdlog::flush_on(spdlog::level::info);
-
- // log file stuff
- // generate log file, format should be nslog%Y-%m-%d %H-%M-%S.txt in gamedir/R2Northstar/logs
- // todo: might be good to delete logs that are too old
- time_t time = std::time(nullptr);
- tm currentTime = *std::localtime(&time);
- std::stringstream stream;
- stream << std::put_time(&currentTime, "R2Northstar/logs/nslog%Y-%m-%d %H-%M-%S.txt");
-
- // create logger
- spdlog::default_logger()->sinks().push_back(std::make_shared<spdlog::sinks::basic_file_sink_mt>(stream.str(), false));
}
ConVar* Cvar_spewlog_enable;
diff --git a/NorthstarDedicatedTest/logging.h b/NorthstarDedicatedTest/logging.h
index 5a4522b4..da13e46f 100644
--- a/NorthstarDedicatedTest/logging.h
+++ b/NorthstarDedicatedTest/logging.h
@@ -1,5 +1,6 @@
#pragma once
#include "context.h"
+void CreateLogFiles();
void InitialiseLogging();
void InitialiseEngineSpewFuncHooks(HMODULE baseAddress); \ No newline at end of file