diff --git a/cmd/banforge/command/daemon.go b/cmd/banforge/command/daemon.go index 5b745f9..e918971 100644 --- a/cmd/banforge/command/daemon.go +++ b/cmd/banforge/command/daemon.go @@ -55,6 +55,7 @@ var DaemonCmd = &cobra.Command{ ticker := time.NewTicker(5 * time.Second) defer ticker.Stop() for range ticker.C { + log.Info("TICK: ProcessUnviewed about to run") if err := j.ProcessUnviewed(); err != nil { log.Error("Failed to process unviewed", "error", err) } diff --git a/internal/judge/judge.go b/internal/judge/judge.go index 581801d..859bf9f 100644 --- a/internal/judge/judge.go +++ b/internal/judge/judge.go @@ -39,11 +39,13 @@ func (j *Judge) LoadRules(rules []config.Rule) { } func (j *Judge) ProcessUnviewed() error { + j.logger.Info("Processing unviewed logs") rows, err := j.db.SearchUnViewed() if err != nil { j.logger.Error(fmt.Sprintf("Failed to query database: %v", err)) return err } + j.logger.Info("Unviewed logs found") defer func() { err = rows.Close() if err != nil { @@ -62,6 +64,7 @@ func (j *Judge) ProcessUnviewed() error { &entry.IsViewed, &entry.CreatedAt, ) + j.logger.Info("Scanning database row," + entry.IP) if err != nil { j.logger.Error(fmt.Sprintf("Failed to scan database row: %v", err)) continue @@ -101,7 +104,6 @@ func (j *Judge) ProcessUnviewed() error { } } } - err = j.db.MarkAsViewed(entry.ID) if err != nil { j.logger.Error(fmt.Sprintf("Failed to mark entry as viewed: %v", err)) diff --git a/internal/logger/logger.go b/internal/logger/logger.go index d231f2e..ffa8233 100644 --- a/internal/logger/logger.go +++ b/internal/logger/logger.go @@ -15,7 +15,7 @@ type Logger struct { func New(debug bool) *Logger { logDir := "/var/log/banforge" - if err := os.MkdirAll(logDir, 0755); err != nil { + if err := os.MkdirAll(logDir, 0750); err != nil { return nil } diff --git a/internal/storage/writer.go b/internal/storage/writer.go index ae67a16..fb78bf9 100644 --- a/internal/storage/writer.go +++ b/internal/storage/writer.go @@ -25,9 +25,13 @@ func Write(db *DB, resultCh <-chan *LogEntry) { } stmt, err := tx.Prepare( - "INSERT INTO requests (service, ip, path, method, status, created_at) VALUES (?, ?, ?, ?, ?, ?)") + "INSERT INTO requests (service, ip, path, method, status, created_at) VALUES (?, ?, ?, ?, ?, ?)", + ) if err != nil { - tx.Rollback() + err := tx.Rollback() + if err != nil { + db.logger.Error("Failed to rollback transaction", "error", err) + } db.logger.Error("Failed to prepare statement", "error", err) return }