Gorm gibt standardmäßig Fehler und langsames SQL aus, und Sie können die Ebene der angezeigten Protokolle anpassen.
Fügen Sie gorm.config global hinzu
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema"
)
type Student struct {
ID uint
StudentName string
Age int
}
var DB *gorm.DB
func init() {
dsn := "root:7PXjAkY!&nlR@tcp(192.168.11.128:3306)/test?charset=utf8mb4&parseTime=True&loc=Local&timeout=10s"
var mysqlLogger logger.Interface
mysqlLogger = logger.Default.LogMode(logger.Info)
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
NamingStrategy: schema.NamingStrategy{
TablePrefix: "f_", //表名前缀,都加上f_
SingularTable: true, //单数表名
NoLowerCase: false, //不要小写转换
},
SkipDefaultTransaction: true,
Logger: mysqlLogger,
})
if err != nil {
panic("数据库连接失败,err=" + err.Error())
}
//连接成功
DB = db
}
func main() {
DB.AutoMigrate(&Student{})
}
Die zweite Funktion zum Schreiben von Protokollen erstellt eine Sitzung und fügt sie der Sitzung hinzu
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
"gorm.io/gorm/logger"
"gorm.io/gorm/schema"
)
type Student struct {
ID uint
StudentName string
Age int
}
var DB *gorm.DB
var mysqlLogger logger.Interface
func init() {
dsn := "root:7PXjAkY!&nlR@tcp(192.168.11.128:3306)/test?charset=utf8mb4&parseTime=True&loc=Local&timeout=10s"
mysqlLogger = logger.Default.LogMode(logger.Info)
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
NamingStrategy: schema.NamingStrategy{
TablePrefix: "f_", //表名前缀,都加上f_
SingularTable: true, //单数表名
NoLowerCase: false, //不要小写转换
},
SkipDefaultTransaction: true,
})
if err != nil {
panic("数据库连接失败,err=" + err.Error())
}
//连接成功
DB = db
}
func main() {
DB := DB.Session(&gorm.Session{
Logger: mysqlLogger,
})
DB.AutoMigrate(&Student{})
}
Der dritte Debug
func main() {
DB.Debug().AutoMigrate(&Student{})
}