Logger

Gorm提供了一个默认的logger实现,默认情况下日志数据级别为warn,同时输出慢SQL:

Default = New(log.New(os.Stdout, "\r\n", log.LstdFlags), Config{
	SlowThreshold:             200 * time.Millisecond,  // 慢sql阈值,200ms
	LogLevel:                  Warn,                    // 日志输出级别
	IgnoreRecordNotFoundError: false,                   // 不忽略记录不存在的错误
	Colorful:                  true,                    // 彩色输出日志
})

log配置可以全局配置,也可以配置为会话级别:

// 配置全局
db, err := gorm.Open(mysql.Open("test"), &gorm.Config{
  Logger: newLogger,
})

// 配置会话
tx := db.Session(&Session{Logger: newLogger})

日志级别

支持SilentErrorWarnInfo

自定义Logger

Gorm也支持自定义Logger,需要实现以下接口:

// Interface logger interface
type Interface interface {
	LogMode(LogLevel) Interface
	Info(context.Context, string, ...interface{})
	Warn(context.Context, string, ...interface{})
	Error(context.Context, string, ...interface{})
	Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)
}

声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin92
Github: mengbin92
cnblogs: 恋水无意