zoukankan      html  css  js  c++  java
  • GORM自定义日志配置

    Gorm 建立了对 Logger 的支持,默认模式只会在错误发生的时候打印日志。可以通过gorm SetLogger(log logger)方法 改变gorm 打日志的行为。

    gorm 中 logger的接口:

    type logger interface {
    	Print(ctx context.Context, v ...interface{})
    }
    1
    2
    3
    v 的值为:
    
    1个参数: level,表示这个是个什么请求,可以是“sql”
    2个参数:打印sql的代码行号,如/Users/yejianfeng/Documents/gopath/src/gorm-log/main.go:50, 
    3个参数: 执行时间戳
    4个参数: sql语句
    5参数:如果有预处理,请求参数,第六个参数是这个sql影响的行数。
    

    zaplog集成示例

    DB.Debug()
    DB.LogMode(true)
    DB.SetLogger(&GormLogger{})
    
    // GormLogger struct
    type GormLogger struct{}
    
    // Print - Log Formatter
    func (*GormLogger) Print(v ...interface{}) {
    	switch v[0] {
    	case "sql":
    		log.Debug(
    			"sql",
    			zap.String("module", "gorm"),
    			zap.String("type", "sql"),
    			zap.Any("src", v[1]),
    			zap.Any("duration", v[2]),
    			zap.Any("sql", v[3]),
    			zap.Any("values", v[4]),
    			zap.Any("rows_returned", v[5]),
    		)
    	case "log":
    		log.Debug("log", zap.Any("gorm", v[2]))
    	}
    }
    

    相关链接:

    https://www.soberkoder.com/go-gorm-logging/
    https://learnku.com/docs/gorm/2018/logger/3805

  • 相关阅读:
    跳转
    登录
    计算器
    安卓作业
    第十三周作业
    第十三周上机练习
    第十二周作业
    第十二周上机作业
    第八周作业
    第七周作业
  • 原文地址:https://www.cnblogs.com/tomtellyou/p/13230163.html
Copyright © 2011-2022 走看看