@@ -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
86196func (l * DBEventLogger ) shouldSaveEvent (msg string ) bool {
87197 // Save ALL events - complete scan history for UI
0 commit comments