diff options
Diffstat (limited to 'src/zenutil/include')
| -rw-r--r-- | src/zenutil/include/zenutil/splitconsole/logstreamlistener.h | 2 | ||||
| -rw-r--r-- | src/zenutil/include/zenutil/splitconsole/tcplogstreamsink.h | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/zenutil/include/zenutil/splitconsole/logstreamlistener.h b/src/zenutil/include/zenutil/splitconsole/logstreamlistener.h index a0e39ba47..f3b960f51 100644 --- a/src/zenutil/include/zenutil/splitconsole/logstreamlistener.h +++ b/src/zenutil/include/zenutil/splitconsole/logstreamlistener.h @@ -56,4 +56,6 @@ private: std::unique_ptr<Impl> m_Impl; }; +void logstreamlistener_forcelink(); + } // namespace zen diff --git a/src/zenutil/include/zenutil/splitconsole/tcplogstreamsink.h b/src/zenutil/include/zenutil/splitconsole/tcplogstreamsink.h index e6320d9d5..f4ac5ff22 100644 --- a/src/zenutil/include/zenutil/splitconsole/tcplogstreamsink.h +++ b/src/zenutil/include/zenutil/splitconsole/tcplogstreamsink.h @@ -11,6 +11,7 @@ ZEN_THIRD_PARTY_INCLUDES_START #include <asio.hpp> ZEN_THIRD_PARTY_INCLUDES_END +#include <atomic> #include <condition_variable> #include <deque> #include <mutex> @@ -60,11 +61,14 @@ public: Text.remove_suffix(1); } - // Build CbObject with text, source, and level fields + uint64_t Seq = m_NextSequence.fetch_add(1, std::memory_order_relaxed); + + // Build CbObject with text, source, level, and sequence number fields CbObjectWriter Writer; Writer.AddString("text", Text); Writer.AddString("source", m_Source); Writer.AddString("level", logging::ToStringView(Msg.GetLevel())); + Writer.AddInteger("seq", Seq); CbObject Obj = Writer.Save(); // Enqueue for async write @@ -172,6 +176,10 @@ private: std::string m_Source; uint32_t m_MaxQueueSize; + // Sequence counter — incremented atomically by Log() callers. + // Gaps in the sequence seen by the receiver indicate dropped messages. + std::atomic<uint64_t> m_NextSequence{0}; + // Queue shared between Log() callers and IO thread std::mutex m_QueueMutex; std::condition_variable m_QueueCv; |