我使用GORM运行以下代码:result := db.Where("account_name = ?", config.AccountName).First(&accountRecord) // line 299 // if there is some error when working with DB if result.Error != nil && !errors.Is(result.Error, gorm.ErrRecordNotFound) { fmt.Println("error when processing accountResponse") return 0, false, result.Error }// in case that record exists if result.Error != nil { accountRecord = newAcountData result = db.Create(&accountRecord) } else { result = db.Model(&accountRecord).Updates(newAcountData) }我已经想在找不到记录的情况下运行一些逻辑。但是 - 错误仍然显示在我的控制台中,说:The record was not found2021/08/30 18:30:16 /Users/kana/projects/server/data-processor/commands.go:289 record not found[4.966ms] [rows:0] SELECT * FROM "accounts" WHERE account_name = 'kana' AND "accounts"."deleted_at" IS NULL ORDER BY "accounts"."id" LIMIT 1为什么会这样呢?之后整个程序运行良好 - 没有崩溃,整体行为是它的设计方式。只是这个错误消息惹恼了我。
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
这是因为 GORM 正在处理一些日志输出,并且是其中之一。如果需要禁用这些类型的日志活动,可以执行以下操作:record not found
如果您使用的是 GORM v1
https://pkg.go.dev/github.com/jinzhu/gorm#DB.LogMode
db.LogMode(false)
如果您使用的是 GORM v2,则可以将记录器传递到 gorm 配置并控制输出。
https://gorm.io/docs/logger.html#Log-Levels
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), })
- 1 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消