aboutsummaryrefslogtreecommitdiff
path: root/zenserver
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-10-28 11:33:47 +0200
committerMartin Ridgers <[email protected]>2021-11-18 15:24:39 +0100
commit4df0770ffe6fb03ed7b5248a7fadef935d856ad3 (patch)
treea79a51c4c3fccd7a99562a99edd7caa67ec88ee2 /zenserver
parentFilled out ZEN_THIRDPARTY_ macros for Clang and GCC (diff)
downloadzen-4df0770ffe6fb03ed7b5248a7fadef935d856ad3.tar.xz
zen-4df0770ffe6fb03ed7b5248a7fadef935d856ad3.zip
Initial integration of Trace from UE5 via the --zentrace=y xmake config
Diffstat (limited to 'zenserver')
-rw-r--r--zenserver/config.cpp16
-rw-r--r--zenserver/config.h4
-rw-r--r--zenserver/zenserver.cpp12
3 files changed, 32 insertions, 0 deletions
diff --git a/zenserver/config.cpp b/zenserver/config.cpp
index 9f24f534c..44297c58e 100644
--- a/zenserver/config.cpp
+++ b/zenserver/config.cpp
@@ -151,6 +151,22 @@ ParseGlobalCliOptions(int argc, char* argv[], ZenServerOptions& GlobalOptions, Z
"");
#endif
+#if ZEN_WITH_TRACE
+ options.add_option("ue-trace",
+ "",
+ "tracehost",
+ "Hostname to send the trace to",
+ cxxopts::value<std::string>(GlobalOptions.TraceHost)->default_value(""),
+ "");
+
+ options.add_option("ue-trace",
+ "",
+ "tracefile",
+ "Path to write a trace to",
+ cxxopts::value<std::string>(GlobalOptions.TraceFile)->default_value(""),
+ "");
+#endif // ZEN_WITH_TRACE
+
options.add_option("diagnostics",
"",
"crash",
diff --git a/zenserver/config.h b/zenserver/config.h
index e7b228b91..0f3994893 100644
--- a/zenserver/config.h
+++ b/zenserver/config.h
@@ -25,6 +25,10 @@ struct ZenServerOptions
std::filesystem::path ContentDir; // Root directory for serving frontend content (experimental)
std::string HttpServerClass; // Choice of HTTP server implementation
std::filesystem::path AbsLogFile; // Absolute path to main log file
+#if ZEN_WITH_TRACE
+ std::string TraceHost; // Host name or IP address to send trace data to
+ std::string TraceFile; // Path of a file to write a trace
+#endif
};
struct ZenUpstreamJupiterConfig
diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp
index fcc629f3e..07936f2ef 100644
--- a/zenserver/zenserver.cpp
+++ b/zenserver/zenserver.cpp
@@ -12,6 +12,7 @@
#include <zencore/string.h>
#include <zencore/thread.h>
#include <zencore/timer.h>
+#include <zencore/trace.h>
#include <zenhttp/httpserver.h>
#include <zenstore/basicfile.h>
#include <zenstore/cas.h>
@@ -987,6 +988,17 @@ main(int argc, char* argv[])
std::filesystem::create_directories(GlobalOptions.DataDir);
}
+#if ZEN_WITH_TRACE
+ if (GlobalOptions.TraceHost.size())
+ {
+ TraceInit(GlobalOptions.TraceHost.c_str(), TraceType::Network);
+ }
+ else if (GlobalOptions.TraceFile.size())
+ {
+ TraceInit(GlobalOptions.TraceFile.c_str(), TraceType::File);
+ }
+#endif // ZEN_WITH_TRACE
+
#if ZEN_PLATFORM_WINDOWS
if (GlobalOptions.InstallService)
{