我使用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 關注
- 78 瀏覽
添加回答
舉報
0/150
提交
取消