Skip to content

Commit f20f14b

Browse files
feat: add non-structured logging methods to DBEventLogger for complete logging coverage
1 parent a67cb65 commit f20f14b

2 files changed

Lines changed: 180 additions & 72 deletions

File tree

internal/logger/db_event_logger.go

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,116 @@ func (l *DBEventLogger) Errorw(msg string, keysAndValues ...interface{}) {
8282
}()
8383
}
8484

85+
// Debugw logs and saves debug events to database
86+
func (l *DBEventLogger) Debugw(msg string, keysAndValues ...interface{}) {
87+
// Call parent logger
88+
l.Logger.Debugw(msg, keysAndValues...)
89+
90+
// Save debug events to database
91+
if l.shouldSaveEvent(msg) {
92+
metadata := l.extractMetadata(keysAndValues)
93+
component := l.extractComponent(keysAndValues)
94+
95+
go func() {
96+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
97+
defer cancel()
98+
99+
if err := l.store.SaveScanEvent(ctx, l.scanID, "debug", component, msg, metadata); err != nil {
100+
l.Logger.Errorw("Failed to save debug event to database",
101+
"error", err,
102+
"scan_id", l.scanID,
103+
"component", component,
104+
"message", msg,
105+
)
106+
}
107+
}()
108+
}
109+
}
110+
111+
// Info logs and saves info events to database
112+
func (l *DBEventLogger) Info(msg string) {
113+
// Call parent logger
114+
l.Logger.Info(msg)
115+
116+
// Save to database
117+
if l.shouldSaveEvent(msg) {
118+
go func() {
119+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
120+
defer cancel()
121+
122+
if err := l.store.SaveScanEvent(ctx, l.scanID, "info", "orchestrator", msg, nil); err != nil {
123+
l.Logger.Errorw("Failed to save info event to database",
124+
"error", err,
125+
"scan_id", l.scanID,
126+
"message", msg,
127+
)
128+
}
129+
}()
130+
}
131+
}
132+
133+
// Warn logs and saves warning events to database
134+
func (l *DBEventLogger) Warn(msg string) {
135+
// Call parent logger
136+
l.Logger.Warn(msg)
137+
138+
// Always save warnings to database
139+
go func() {
140+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
141+
defer cancel()
142+
143+
if err := l.store.SaveScanEvent(ctx, l.scanID, "warning", "orchestrator", msg, nil); err != nil {
144+
l.Logger.Errorw("Failed to save warning event to database",
145+
"error", err,
146+
"scan_id", l.scanID,
147+
"message", msg,
148+
)
149+
}
150+
}()
151+
}
152+
153+
// Error logs and saves error events to database
154+
func (l *DBEventLogger) Error(msg string) {
155+
// Call parent logger
156+
l.Logger.Error(msg)
157+
158+
// Always save errors to database
159+
go func() {
160+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
161+
defer cancel()
162+
163+
if err := l.store.SaveScanEvent(ctx, l.scanID, "error", "orchestrator", msg, nil); err != nil {
164+
l.Logger.Errorw("Failed to save error event to database",
165+
"error", err,
166+
"scan_id", l.scanID,
167+
"message", msg,
168+
)
169+
}
170+
}()
171+
}
172+
173+
// Debug logs and saves debug events to database
174+
func (l *DBEventLogger) Debug(msg string) {
175+
// Call parent logger
176+
l.Logger.Debug(msg)
177+
178+
// Save debug events to database
179+
if l.shouldSaveEvent(msg) {
180+
go func() {
181+
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
182+
defer cancel()
183+
184+
if err := l.store.SaveScanEvent(ctx, l.scanID, "debug", "orchestrator", msg, nil); err != nil {
185+
l.Logger.Errorw("Failed to save debug event to database",
186+
"error", err,
187+
"scan_id", l.scanID,
188+
"message", msg,
189+
)
190+
}
191+
}()
192+
}
193+
}
194+
85195
// shouldSaveEvent determines if an event is significant enough to save to database
86196
func (l *DBEventLogger) shouldSaveEvent(msg string) bool {
87197
// Save ALL events - complete scan history for UI

0 commit comments

Comments
 (0)