From 4df0770ffe6fb03ed7b5248a7fadef935d856ad3 Mon Sep 17 00:00:00 2001 From: Martin Ridgers Date: Thu, 28 Oct 2021 11:33:47 +0200 Subject: Initial integration of Trace from UE5 via the --zentrace=y xmake config --- zenserver/config.cpp | 16 ++++++++++++++++ zenserver/config.h | 4 ++++ zenserver/zenserver.cpp | 12 ++++++++++++ 3 files changed, 32 insertions(+) (limited to 'zenserver') 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(GlobalOptions.TraceHost)->default_value(""), + ""); + + options.add_option("ue-trace", + "", + "tracefile", + "Path to write a trace to", + cxxopts::value(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 #include #include +#include #include #include #include @@ -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) { -- cgit v1.2.3