From 23cf52db321341ca9cd313bce7880c1f92178c60 Mon Sep 17 00:00:00 2001 From: roby Date: Sat, 30 Mar 2024 10:37:05 +0800 Subject: [PATCH] Add debug loglevel Signed-off-by: roby --- gorm.go | 2 +- logger/logger.go | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gorm.go b/gorm.go index 775cd3de..ee5ec8c9 100644 --- a/gorm.go +++ b/gorm.go @@ -321,7 +321,7 @@ func (db *DB) WithContext(ctx context.Context) *DB { func (db *DB) Debug() (tx *DB) { tx = db.getInstance() return tx.Session(&Session{ - Logger: db.Logger.LogMode(logger.Info), + Logger: db.Logger.LogMode(logger.Debug), }) } diff --git a/logger/logger.go b/logger/logger.go index 253f0325..478dde5e 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -43,6 +43,8 @@ const ( Warn // Info info log level Info + // Debug debug log level + Debug ) // Writer log writer interface @@ -62,6 +64,7 @@ type Config struct { // Interface logger interface type Interface interface { LogMode(LogLevel) Interface + Debug(context.Context, string, ...interface{}) Info(context.Context, string, ...interface{}) Warn(context.Context, string, ...interface{}) Error(context.Context, string, ...interface{}) @@ -85,6 +88,7 @@ var ( // New initialize logger func New(writer Writer, config Config) Interface { var ( + debugStr = "%s\n[debug] " infoStr = "%s\n[info] " warnStr = "%s\n[warn] " errStr = "%s\n[error] " @@ -105,6 +109,7 @@ func New(writer Writer, config Config) Interface { return &logger{ Writer: writer, Config: config, + debugStr: debugStr, infoStr: infoStr, warnStr: warnStr, errStr: errStr, @@ -117,7 +122,7 @@ func New(writer Writer, config Config) Interface { type logger struct { Writer Config - infoStr, warnStr, errStr string + debugStr, infoStr, warnStr, errStr string traceStr, traceErrStr, traceWarnStr string } @@ -128,6 +133,13 @@ func (l *logger) LogMode(level LogLevel) Interface { return &newlogger } +// Debug print debug messages +func (l *logger) Debug(ctx context.Context, msg string, data ...interface{}) { + if l.LogLevel >= Debug { + l.Printf(l.debugStr+msg, append([]interface{}{utils.FileWithLineNum()}, data...)...) + } +} + // Info print info func (l *logger) Info(ctx context.Context, msg string, data ...interface{}) { if l.LogLevel >= Info {