Fix: Prevent crash by checking for DB initialization before logging to database

This commit is contained in:
Jeffrey Paul 2025-05-22 06:58:29 -07:00
parent e64ec45054
commit 9958c4e352
2 changed files with 14 additions and 5 deletions

13
main.go
View File

@ -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"

View File

@ -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 {