aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver/diag/logging.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver/diag/logging.cpp')
-rw-r--r--src/zenserver/diag/logging.cpp61
1 files changed, 28 insertions, 33 deletions
diff --git a/src/zenserver/diag/logging.cpp b/src/zenserver/diag/logging.cpp
index 4962b9006..178c3d3b5 100644
--- a/src/zenserver/diag/logging.cpp
+++ b/src/zenserver/diag/logging.cpp
@@ -6,6 +6,8 @@
#include <zencore/filesystem.h>
#include <zencore/fmtutils.h>
+#include <zencore/logging/logger.h>
+#include <zencore/logging/registry.h>
#include <zencore/memory/llm.h>
#include <zencore/session.h>
#include <zencore/string.h>
@@ -14,10 +16,6 @@
#include "otlphttp.h"
-ZEN_THIRD_PARTY_INCLUDES_START
-#include <spdlog/spdlog.h>
-ZEN_THIRD_PARTY_INCLUDES_END
-
namespace zen {
void
@@ -28,10 +26,10 @@ InitializeServerLogging(const ZenServerConfig& InOptions, bool WithCacheService)
const LoggingOptions LogOptions = {.IsDebug = InOptions.IsDebug,
.IsVerbose = false,
.IsTest = InOptions.IsTest,
- .NoConsoleOutput = InOptions.NoConsoleOutput,
- .QuietConsole = InOptions.QuietConsole,
- .AbsLogFile = InOptions.AbsLogFile,
- .LogId = InOptions.LogId};
+ .NoConsoleOutput = InOptions.LoggingConfig.NoConsoleOutput,
+ .QuietConsole = InOptions.LoggingConfig.QuietConsole,
+ .AbsLogFile = InOptions.LoggingConfig.AbsLogFile,
+ .LogId = InOptions.LoggingConfig.LogId};
BeginInitializeLogging(LogOptions);
@@ -43,13 +41,12 @@ InitializeServerLogging(const ZenServerConfig& InOptions, bool WithCacheService)
std::filesystem::path HttpLogPath = InOptions.DataDir / "logs" / "http.log";
zen::CreateDirectories(HttpLogPath.parent_path());
- auto HttpSink = std::make_shared<zen::logging::RotatingFileSink>(HttpLogPath,
- /* max size */ 128 * 1024 * 1024,
- /* max files */ 16,
- /* rotate on open */ true);
- auto HttpLogger = std::make_shared<spdlog::logger>("http_requests", HttpSink);
- spdlog::apply_logger_env_levels(HttpLogger);
- spdlog::register_logger(HttpLogger);
+ logging::SinkPtr HttpSink(new zen::logging::RotatingFileSink(HttpLogPath,
+ /* max size */ 128 * 1024 * 1024,
+ /* max files */ 16,
+ /* rotate on open */ true));
+ Ref<logging::Logger> HttpLogger(new logging::Logger("http_requests", std::vector<logging::SinkPtr>{HttpSink}));
+ logging::Registry::Instance().Register(HttpLogger);
if (WithCacheService)
{
@@ -57,33 +54,30 @@ InitializeServerLogging(const ZenServerConfig& InOptions, bool WithCacheService)
std::filesystem::path CacheLogPath = InOptions.DataDir / "logs" / "z$.log";
zen::CreateDirectories(CacheLogPath.parent_path());
- auto CacheSink = std::make_shared<zen::logging::RotatingFileSink>(CacheLogPath,
- /* max size */ 128 * 1024 * 1024,
- /* max files */ 16,
- /* rotate on open */ false);
- auto CacheLogger = std::make_shared<spdlog::logger>("z$", CacheSink);
- spdlog::apply_logger_env_levels(CacheLogger);
- spdlog::register_logger(CacheLogger);
+ logging::SinkPtr CacheSink(new zen::logging::RotatingFileSink(CacheLogPath,
+ /* max size */ 128 * 1024 * 1024,
+ /* max files */ 16,
+ /* rotate on open */ false));
+ Ref<logging::Logger> CacheLogger(new logging::Logger("z$", std::vector<logging::SinkPtr>{CacheSink}));
+ logging::Registry::Instance().Register(CacheLogger);
// Jupiter - only log upstream HTTP traffic to file
- auto JupiterLogger = std::make_shared<spdlog::logger>("jupiter", FileSink);
- spdlog::apply_logger_env_levels(JupiterLogger);
- spdlog::register_logger(JupiterLogger);
+ Ref<logging::Logger> JupiterLogger(new logging::Logger("jupiter", std::vector<logging::SinkPtr>{FileSink}));
+ logging::Registry::Instance().Register(JupiterLogger);
// Zen - only log upstream HTTP traffic to file
- auto ZenClientLogger = std::make_shared<spdlog::logger>("zenclient", FileSink);
- spdlog::apply_logger_env_levels(ZenClientLogger);
- spdlog::register_logger(ZenClientLogger);
+ Ref<logging::Logger> ZenClientLogger(new logging::Logger("zenclient", std::vector<logging::SinkPtr>{FileSink}));
+ logging::Registry::Instance().Register(ZenClientLogger);
}
#if ZEN_WITH_OTEL
- if (!InOptions.OtelEndpointUri.empty())
+ if (!InOptions.LoggingConfig.OtelEndpointUri.empty())
{
// TODO: Should sanity check that endpoint is reachable? Also, a valid URI?
- auto OtelSink = std::make_shared<zen::logging::OtelHttpProtobufSink>(InOptions.OtelEndpointUri);
- zen::logging::Default().SpdLogger->sinks().push_back(std::move(OtelSink));
+ logging::SinkPtr OtelSink(new zen::logging::OtelHttpProtobufSink(InOptions.LoggingConfig.OtelEndpointUri));
+ zen::logging::Default()->AddSink(std::move(OtelSink));
}
#endif
@@ -91,9 +85,10 @@ InitializeServerLogging(const ZenServerConfig& InOptions, bool WithCacheService)
const zen::Oid ServerSessionId = zen::GetSessionId();
- spdlog::apply_all([&](auto Logger) {
+ static constinit logging::LogPoint SessionIdPoint{{}, logging::Info, "server session id: {}"};
+ logging::Registry::Instance().ApplyAll([&](auto Logger) {
ZEN_MEMSCOPE(ELLMTag::Logging);
- Logger->info("server session id: {}", ServerSessionId);
+ Logger->Log(SessionIdPoint, fmt::make_format_args(ServerSessionId));
});
}