diff options
author | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-02-13 20:43:03 +0100 |
---|---|---|
committer | René 'Necoro' Neumann <necoro@necoro.eu> | 2024-02-13 20:43:03 +0100 |
commit | 18ed79e026aa301ffed60ab86f6df7adca981ccb (patch) | |
tree | 47e0ae8b266e7b743fb64524bfccc149219831c2 /sql | |
parent | a9420a2a4f3221d1771e7f28786ccdd80ceed88d (diff) | |
download | gosten-18ed79e026aa301ffed60ab86f6df7adca981ccb.tar.gz gosten-18ed79e026aa301ffed60ab86f6df7adca981ccb.tar.bz2 gosten-18ed79e026aa301ffed60ab86f6df7adca981ccb.zip |
SQL logging
Diffstat (limited to '')
-rw-r--r-- | sqlite.go | 44 | ||||
-rw-r--r-- | sqlite_linux.go | 9 |
2 files changed, 50 insertions, 3 deletions
@@ -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)) +} diff --git a/sqlite_linux.go b/sqlite_linux.go new file mode 100644 index 0000000..cf65cb2 --- /dev/null +++ b/sqlite_linux.go @@ -0,0 +1,9 @@ +//go:build sqlite && !windows + +package main + +import ( + _ "github.com/mattn/go-sqlite3" +) + +const driverName = "sqlite3" |