diff --git a/main.go b/main.go index 8dcbaa4..75a5956 100644 --- a/main.go +++ b/main.go @@ -3,7 +3,7 @@ package main import ( "database/sql" "flag" - "log" + "log/slog" "os" "os/signal" "sync" @@ -24,16 +24,18 @@ var ( ) func main() { + setupLogging() + defer flushLog() + logInfo("main", "Starting gomeshalerter", map[string]interface{}{ "timestamp": runStart.Format("15:04:05"), }) - setupLogging() - defer flushLog() var err error db, err = sql.Open("sqlite3", dbPath+"?_journal=WAL") // Use WAL mode for better concurrency if err != nil { - log.Fatalf("Failed to open database: %v", err) + slog.Error("Failed to open database", "error", err) + os.Exit(1) } // Define a cleanup function to properly close resources @@ -51,7 +53,8 @@ func main() { defer cleanup() if err := setupDatabase(); err != nil { - log.Fatalf("Failed to setup database: %v", err) + slog.Error("Failed to setup database", "error", err) + os.Exit(1) } ollamaModel := "qwen3:32b" diff --git a/storage.go b/storage.go index f03a9c3..9706ac5 100644 --- a/storage.go +++ b/storage.go @@ -397,6 +397,12 @@ func logEvent(event string, details map[string]interface{}) { // Add to the permanent log data (for file-based logging) logData = append(logData, entry) + // Only try to store in database if the database is initialized + if db == nil { + slog.Debug("Skipping database log storage - database not yet initialized") + return + } + // Store log in database logBytes, err := json.Marshal(entry) if err != nil {