package db import ( "fmt" "sparkteam-dash/pkg/config" log "sparkteam-dash/pkg/logger" "time" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" ) var ( logEngine *gorm.DB ) func Init() { InitLogDb() } func InitLogDb() { mysqlConf := config.App.LogMySQL connectDNS := fmt.Sprintf("%s:%s@(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", mysqlConf.Username, mysqlConf.Password, mysqlConf.Addr, mysqlConf.DbName) conn, err := gorm.Open(mysql.Open(connectDNS), &gorm.Config{ Logger: logger.Default.LogMode(config.GetLogLevel()), SkipDefaultTransaction: true, }) if err != nil { panic(err) } if config.App.GinMode == "debug" { conn.Debug() } sqlDB, err := conn.DB() if err != nil { log.Fatalf("mysql lost: %v", err) } sqlDB.SetMaxIdleConns(10) sqlDB.SetMaxOpenConns(20) sqlDB.SetConnMaxLifetime(2 * time.Hour) logEngine = conn } func LogEngine() *gorm.DB { return logEngine }