golang使用gorm初始化全局db对象,并设置日志级别

golang使用gorm初始化全局db对象,并设置日志级别

package initialize

import (
   "fmt"
   "gorm.io/driver/mysql"
   "gorm.io/gorm"
   "gorm.io/gorm/logger"
   "gorm.io/gorm/schema"
   "log"
   "os"
   "shop_srvs/order_srv/global"
   "time"
)

func InitDb() {
   newLogger := logger.New(
      log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer(日志输出的目标,前缀和日志包含的内容——译者注)
      logger.Config{
         SlowThreshold:             time.Second,  // 慢 SQL 阈值
         LogLevel:                  logger.Info, // 日志级别
         IgnoreRecordNotFoundError: true,         // 忽略ErrRecordNotFound(记录未找到)错误
         Colorful:                  true,         // 禁用彩色打印
      },
   )
   //dsn := "root:root@tcp(192.168.0.104:3306)/shop_goods_srv?charset=utf8mb4&parseTime=True&loc=Local"
   c := global.ServerConfig.Mysql
   dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", c.User, c.Pwd, c.Host, c.Port, c.Database)
   var err error
   global.Db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
      NamingStrategy: schema.NamingStrategy{
         SingularTable: true,
      },
      Logger: newLogger,
   })

   if err != nil {
      panic("failed to connect database")
   }
   fmt.Println("数据库初始化成功")
}


最后编辑于:2022/03/01作者: 牛逼PHP

发表评论