diff options
Diffstat (limited to 'zenserver')
| -rw-r--r-- | zenserver/config.cpp | 16 | ||||
| -rw-r--r-- | zenserver/config.h | 4 | ||||
| -rw-r--r-- | zenserver/zenserver.cpp | 12 |
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) { |