Gorm 日志的使用

gorm默认打印的是错误和慢sql,可以自定义显示日志的等级。

全局 在gorm.config去添加

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{})
}

第二种写日志的功能 创建session 在session里面去添加

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{})
}

第三种 debug

func main() {
	DB.Debug().AutoMigrate(&Student{})
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值