From b638dafe5fb2b6fcdd6d9b64502a7808f3e81eb5 Mon Sep 17 00:00:00 2001 From: adamdottv <2363879+adamdottv@users.noreply.github.com> Date: Tue, 6 May 2025 14:22:37 -0500 Subject: feat: better logs page --- internal/logging/writer.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'internal/logging') diff --git a/internal/logging/writer.go b/internal/logging/writer.go index 50f3367db..4cb89f24f 100644 --- a/internal/logging/writer.go +++ b/internal/logging/writer.go @@ -17,6 +17,11 @@ const ( PersistTimeArg = "$_persist_time" ) +const ( + // Maximum number of log messages to keep in memory + maxLogMessages = 1000 +) + type LogData struct { messages []LogMessage *pubsub.Broker[LogMessage] @@ -26,7 +31,15 @@ type LogData struct { func (l *LogData) Add(msg LogMessage) { l.lock.Lock() defer l.lock.Unlock() + + // Add new message l.messages = append(l.messages, msg) + + // Trim if exceeding max capacity + if len(l.messages) > maxLogMessages { + l.messages = l.messages[len(l.messages)-maxLogMessages:] + } + l.Publish(pubsub.CreatedEvent, msg) } @@ -37,7 +50,7 @@ func (l *LogData) List() []LogMessage { } var defaultLogData = &LogData{ - messages: make([]LogMessage, 0), + messages: make([]LogMessage, 0, maxLogMessages), Broker: pubsub.NewBroker[LogMessage](), } -- cgit v1.2.3