From f1007771997bd0401516eda87a7e0ac92f269680 Mon Sep 17 00:00:00 2001 From: adamdottv <2363879+adamdottv@users.noreply.github.com> Date: Fri, 9 May 2025 13:37:13 -0500 Subject: wip: logging improvements --- internal/logging/manager.go | 48 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 internal/logging/manager.go (limited to 'internal/logging/manager.go') diff --git a/internal/logging/manager.go b/internal/logging/manager.go new file mode 100644 index 000000000..e8e96520b --- /dev/null +++ b/internal/logging/manager.go @@ -0,0 +1,48 @@ +package logging + +import ( + "context" + "sync" +) + +// Manager handles logging management +type Manager struct { + service Service + mu sync.RWMutex +} + +// Global instance of the logging manager +var globalManager *Manager + +// InitManager initializes the global logging manager with the provided service +func InitManager(service Service) { + globalManager = &Manager{ + service: service, + } + + // Subscribe to log events if needed + go func() { + ctx := context.Background() + _ = service.Subscribe(ctx) // Just subscribing to keep the channel open + }() +} + +// GetService returns the logging service +func GetService() Service { + if globalManager == nil { + return nil + } + + globalManager.mu.RLock() + defer globalManager.mu.RUnlock() + + return globalManager.service +} + +func Create(ctx context.Context, log Log) error { + if globalManager == nil { + return nil + } + return globalManager.service.Create(ctx, log) +} + -- cgit v1.2.3