From 44ba4f381e0d5bb370dde0b82e308b1230d9a67d Mon Sep 17 00:00:00 2001 From: Per Larsson Date: Wed, 6 Oct 2021 13:41:13 +0200 Subject: Added option to specify path to logfile. --- zenserver/config.cpp | 1 + zenserver/config.h | 1 + zenserver/diag/logging.cpp | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/zenserver/config.cpp b/zenserver/config.cpp index 7a1efe6e8..df3259542 100644 --- a/zenserver/config.cpp +++ b/zenserver/config.cpp @@ -91,6 +91,7 @@ ParseGlobalCliOptions(int argc, char* argv[], ZenServerOptions& GlobalOptions, Z options.add_options()("log-id", "Specify id for adding context to log output", cxxopts::value(GlobalOptions.LogId)); options.add_options()("data-dir", "Specify persistence root", cxxopts::value(GlobalOptions.DataDir)); options.add_options()("content-dir", "Frontend content directory", cxxopts::value(GlobalOptions.ContentDir)); + options.add_options()("abslog", "Path to log file", cxxopts::value(GlobalOptions.AbsLogFile)); options .add_option("lifetime", "", "owner-pid", "Specify owning process id", cxxopts::value(GlobalOptions.OwnerPid), ""); diff --git a/zenserver/config.h b/zenserver/config.h index ec6d7340a..405e22739 100644 --- a/zenserver/config.h +++ b/zenserver/config.h @@ -18,6 +18,7 @@ struct ZenServerOptions std::string LogId; // Id for tagging log output std::filesystem::path DataDir; // Root directory for state (used for testing) std::filesystem::path ContentDir; // Root directory for serving frontend content (experimental) + std::filesystem::path AbsLogFile; }; struct ZenUpstreamJupiterConfig diff --git a/zenserver/diag/logging.cpp b/zenserver/diag/logging.cpp index bc7b883b5..8cec7ddc9 100644 --- a/zenserver/diag/logging.cpp +++ b/zenserver/diag/logging.cpp @@ -196,7 +196,8 @@ InitializeLogging(const ZenServerOptions& GlobalOptions) EnableVTMode(); - std::filesystem::path LogPath = GlobalOptions.DataDir / "logs/zenserver.log"; + std::filesystem::path LogPath = + !GlobalOptions.AbsLogFile.empty() ? GlobalOptions.AbsLogFile : GlobalOptions.DataDir / "logs/zenserver.log"; bool IsAsync = true; spdlog::level::level_enum LogLevel = spdlog::level::info; -- cgit v1.2.3