diff --git a/knotserver/db/db.go b/knotserver/db/db.go --- a/knotserver/db/db.go +++ b/knotserver/db/db.go @@ -1,17 +1,21 @@ package db import ( + "context" "database/sql" + "log/slog" "strings" _ "github.com/mattn/go-sqlite3" + "tangled.org/core/log" ) type DB struct { - db *sql.DB + db *sql.DB + logger *slog.Logger } -func Setup(dbPath string) (*DB, error) { +func Setup(ctx context.Context, dbPath string) (*DB, error) { // https://github.com/mattn/go-sqlite3#connection-string opts := []string{ "_foreign_keys=1", @@ -19,6 +23,9 @@ "_journal_mode=WAL", "_synchronous=NORMAL", "_auto_vacuum=incremental", } + + logger := log.FromContext(ctx) + logger = log.SubLogger(logger, "db") db, err := sql.Open("sqlite3", dbPath+"?"+strings.Join(opts, "&")) if err != nil { @@ -60,5 +67,8 @@ if err != nil { return nil, err } - return &DB{db: db}, nil + return &DB{ + db: db, + logger: logger, + }, nil } diff --git a/knotserver/server.go b/knotserver/server.go --- a/knotserver/server.go +++ b/knotserver/server.go @@ -64,7 +64,7 @@ if c.Server.Dev { logger.Info("running in dev mode, signature verification is disabled") } - db, err := db.Setup(c.Server.DBPath) + db, err := db.Setup(ctx, c.Server.DBPath) if err != nil { return fmt.Errorf("failed to load db: %w", err) }