1.在使用http包时候出现两次请求:
在http包使用的时候,注册了 / 这个根路径的模式处理,浏览器会自动的请求favicon.ico ,如果不处理则会出现两次请求,处理方法:
//设置一个方法 func index(w http.ResponseWriter, r *http.Request) { if r.URL.RequestURI() == "/favicon.ico" { return } }
2.在使用Gorm时候打印Sql语句:
-
-
在打开连接时设置日志级别为Info
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ Logger:logger.Default.LogMode(logger.Info), })
- 打印单条sql:
在操作前加Debug(), 相当于将临时将日志级别改为Info
DB.Debug().Where("ID = ?", 52).First(&newData) //输出 //[0.773ms] [rows:1] SELECT * FROM `User` WHERE ID = 52 ORDER BY `User`.`id` LIMIT 1
- 只打印慢查询
slowLogger := logger.New( //将标准输出作为Writer log.New(os.Stdout, "\r\n", log.LstdFlags), logger.Config{ //设定慢查询时间阈值为1ms SlowThreshold: 1 * time.Microsecond, //设置日志级别,只有Warn和Info级别会输出慢查询日志 LogLevel: logger.Warn, }, ) DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ Logger:slowLogger, }) //输出类似 //2021/05/14 11:36:28 /home/ballqiu/go/gorm/mydb.go:98 SLOW SQL >= 1ms //[2.996ms] [rows:1] INSERT INTO `User` (`name`,`age`,`is_admin`,`is_valid`,`login_time`) VALUES ('ball',0,true,false,'2021-05-14 11:36:28.436')
说明:
- 默认的SlowThreshold为200ms
- 如果你不想改变这个默认值,那么只需要将日志级别改为Warn即可只打印慢查询。
-
DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
Logger:logger.Default.LogMode(logger.Warn),
})
如需转载请注明: 转载自26点的博客
本文链接地址: Go开发过程中需要会的两个问题
转载请注明:26点的博客 » Go开发过程中需要会的两个问题