From 4963842e77f2ced5295abb253d92e5a45b168720 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 9 Oct 2022 14:57:32 +0200 Subject: [PATCH] chore: add database log --- core/db/db.go | 4 +--- server/db/db.go | 5 ++++- server/db/log.go | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 server/db/log.go diff --git a/core/db/db.go b/core/db/db.go index 327c60a59..6a12df3d8 100644 --- a/core/db/db.go +++ b/core/db/db.go @@ -44,9 +44,7 @@ func (s *DB) Session(meter float64) *Session { // Persist creates or updates a transaction in the database func (s *DB) Persist(session interface{}) { - s.log.TRACE.Printf("store: %+v", session) - if err := s.db.Save(session).Error; err != nil { - s.log.ERROR.Printf("store: %v", err) + s.log.ERROR.Printf("persist: %v", err) } } diff --git a/server/db/db.go b/server/db/db.go index 9d252d2b1..3f57970b6 100644 --- a/server/db/db.go +++ b/server/db/db.go @@ -6,6 +6,7 @@ import ( "path/filepath" "strings" + "github.com/evcc-io/evcc/util" "github.com/glebarez/sqlite" "github.com/mitchellh/go-homedir" "gorm.io/gorm" @@ -34,7 +35,9 @@ func New(driver, dsn string) (*gorm.DB, error) { return nil, fmt.Errorf("invalid database type: %s not in [sqlite]", driver) } - return gorm.Open(dialect, &gorm.Config{}) + return gorm.Open(dialect, &gorm.Config{ + Logger: &Logger{util.NewLogger("db")}, + }) } func NewInstance(driver, dsn string) (err error) { diff --git a/server/db/log.go b/server/db/log.go new file mode 100644 index 000000000..ed9ebf79f --- /dev/null +++ b/server/db/log.go @@ -0,0 +1,34 @@ +package db + +import ( + "context" + "time" + + "github.com/evcc-io/evcc/util" + "gorm.io/gorm/logger" +) + +type Logger struct { + log *util.Logger +} + +func (l *Logger) LogMode(logger.LogLevel) logger.Interface { + return l +} + +func (l *Logger) Info(_ context.Context, msg string, val ...interface{}) { + l.log.INFO.Printf(msg, val...) +} + +func (l *Logger) Warn(_ context.Context, msg string, val ...interface{}) { + l.log.WARN.Printf(msg, val...) +} + +func (l *Logger) Error(_ context.Context, msg string, val ...interface{}) { + l.log.ERROR.Printf(msg, val...) +} + +func (l *Logger) Trace(_ context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error) { + sql, rows := fc() + l.log.TRACE.Println(sql, rows, err) +}