summaryrefslogtreecommitdiff
path: root/sqlite.go
diff options
context:
space:
mode:
Diffstat (limited to 'sqlite.go')
-rw-r--r--sqlite.go44
1 files changed, 41 insertions, 3 deletions
diff --git a/sqlite.go b/sqlite.go
index cf65cb2..bc3c733 100644
--- a/sqlite.go
+++ b/sqlite.go
@@ -1,9 +1,47 @@
-//go:build sqlite && !windows
+//go:build sqlite
package main
import (
- _ "github.com/mattn/go-sqlite3"
+ "context"
+ "database/sql"
+ "log"
+ "log/slog"
+
+ sqldblogger "github.com/simukti/sqldb-logger"
)
-const driverName = "sqlite3"
+type logger struct {
+}
+
+func (l logger) Log(ctx context.Context, level sqldblogger.Level, msg string, data map[string]interface{}) {
+ attrs := make([]slog.Attr, 0, len(data))
+
+ for k, v := range data {
+ attrs = append(attrs, slog.Any(k, v))
+ }
+
+ var lvl slog.Level
+ switch level {
+ case sqldblogger.LevelDebug, sqldblogger.LevelTrace:
+ lvl = slog.LevelDebug
+ case sqldblogger.LevelInfo:
+ lvl = slog.LevelInfo
+ case sqldblogger.LevelError:
+ lvl = slog.LevelError
+ }
+
+ slog.LogAttrs(ctx, lvl, msg, attrs...)
+}
+
+func openDB(_ string) *sql.DB {
+ dsn := "test.sqlite"
+ db, err := sql.Open(driverName, dsn)
+ if err != nil {
+ log.Fatal(err)
+ }
+ slog.SetLogLoggerLevel(slog.LevelDebug)
+ return sqldblogger.OpenDriver(dsn, db.Driver(), logger{},
+ sqldblogger.WithSQLQueryAsMessage(false),
+ sqldblogger.WithMinimumLevel(sqldblogger.LevelTrace))
+}