本文主要是介绍grom设置全局日志实现执行并打印sql语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《grom设置全局日志实现执行并打印sql语句》本文主要介绍了grom设置全局日志实现执行并打印sql语句,包括设置日志级别、实现自定义Logger接口以及如何使用GORM的默认logger,通过这些...
gorm中的自定义日志
Gorm 有一个 默认 logger 实现,默认情况下,它会打印慢 SQL 和错误
Logger 接受的选项不多,您可以在初始化时自定义它,例如:
newLogger := logger.New( log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer logger.Config{ SlowThreshold: time.Second, // Slow SQL threshold(慢速SQL阈值) LogLevel: logger.info, // Log level(日志级别) IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger ParameterizedQueries: China编程 true, // Don't include params in the SQL log(忽略记录器的ErrRecordNjsotFound错误) Colorful: true, /php/ Disable color(禁用颜色)设置彩色打印 }, ) // Globally mode db, err := gorm.Open(SQLite.Open("test.db"), &gorm.Config{ Logger: newLogger, })
gorm中日志的其他操作
日志级别
GORM 定义了这些日志级别:Silent、Error、Warn、Info
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), })
Debug
Debug 单个操作,将当前操作的 log 级别调整为 logger.Info
db.Debug().Where("name = ?", "jinzhu").China编程First(&User{})
自定义 Logger
参考 GORM 的 默认 logger 来定义您自己的 logger
Logger 需要实现以下接口,它接受 context,所以你可以用它来追踪日志
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() (sq编程l string, rowsAffected int64), err error) }
详细内容可参考gorm官方文档:https://gorm.io/zh_CN/docs/logger.html
到此这篇关于grom设置全局日志实现执行并打印sql语句的文章就介绍到这了,更多相关grom设置全局日志 内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于grom设置全局日志实现执行并打印sql语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!