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.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/zenserver/diag/logging.cpp b/src/zenserver/diag/logging.cpp
index 178c3d3b5..38b15480a 100644
--- a/src/zenserver/diag/logging.cpp
+++ b/src/zenserver/diag/logging.cpp
@@ -13,6 +13,7 @@
#include <zencore/string.h>
#include <zenutil/logging.h>
#include <zenutil/logging/rotatingfilesink.h>
+#include <zenutil/splitconsole/tcplogstreamsink.h>
#include "otlphttp.h"
@@ -28,6 +29,7 @@ InitializeServerLogging(const ZenServerConfig& InOptions, bool WithCacheService)
.IsTest = InOptions.IsTest,
.NoConsoleOutput = InOptions.LoggingConfig.NoConsoleOutput,
.QuietConsole = InOptions.LoggingConfig.QuietConsole,
+ .ForceColor = InOptions.LoggingConfig.ForceColor,
.AbsLogFile = InOptions.LoggingConfig.AbsLogFile,
.LogId = InOptions.LoggingConfig.LogId};
@@ -81,6 +83,27 @@ InitializeServerLogging(const ZenServerConfig& InOptions, bool WithCacheService)
}
#endif
+ if (!InOptions.LoggingConfig.LogStreamEndpoint.empty())
+ {
+ std::string Endpoint = InOptions.LoggingConfig.LogStreamEndpoint;
+ std::string Host = "localhost";
+ uint16_t Port = 0;
+
+ auto ColonPos = Endpoint.rfind(':');
+ if (ColonPos != std::string::npos)
+ {
+ Host = Endpoint.substr(0, ColonPos);
+ std::optional<uint16_t> P = ParseInt<uint16_t>(std::string_view(Endpoint).substr(ColonPos + 1));
+ Port = P.value_or(0);
+ }
+
+ if (Port > 0)
+ {
+ logging::SinkPtr StreamSink(new TcpLogStreamSink(Host, Port, "zenserver"));
+ zen::logging::Default()->AddSink(std::move(StreamSink));
+ }
+ }
+
FinishInitializeLogging(LogOptions);
const zen::Oid ServerSessionId = zen::GetSessionId();