diff --git a/dao/db.go b/dao/db.go index 0c54f5c..9f3718a 100644 --- a/dao/db.go +++ b/dao/db.go @@ -6,7 +6,10 @@ import ( "gorm.io/driver/mysql" "gorm.io/driver/postgres" "gorm.io/gorm" + "gorm.io/gorm/logger" "log" + "os" + "time" ) var DB *gorm.DB @@ -15,12 +18,24 @@ func Init() error { var db *gorm.DB var err error var dsn string + logger := logger.New( + log.New(os.Stdout, "\r\n", log.LstdFlags), // 日志输出到标准输出 + logger.Config{ + SlowThreshold: time.Millisecond * 500, // 慢查询阈值设置为 500ms + LogLevel: logger.Info, // 日志级别设置为 Info,记录慢查询信息 + Colorful: true, // 启用日志颜色显示 + }, + ) if proto.Config.DB == 0 { dsn = proto.Config.MYSQL_DSN - db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) + db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ + Logger: logger, + }) } else if proto.Config.DB == 1 { dsn = proto.Config.PG_DSN - db, err = gorm.Open(postgres.Open(dsn), &gorm.Config{}) + db, err = gorm.Open(postgres.Open(dsn), &gorm.Config{ + Logger: logger, + }) } if err != nil { diff --git a/proto/conf.go b/proto/conf.go index a8b6173..5013db3 100644 --- a/proto/conf.go +++ b/proto/conf.go @@ -67,6 +67,7 @@ type ConfigStruct struct { DB int `json:"db"` // 0: mysql, 1: pg MYSQL_DSN string `json:"mysql_dsn"` PG_DSN string `json:"pg_dsn"` + SlowQueryThreshold int `json:"slow_query_threshold"` // 慢查询阈值,单位ms REDIS_ADDR string `json:"redis_addr"` TOKEN_USE_REDIS bool `json:"token_use_redis"` REDIS_User_PW bool `json:"redis_user_pw"` // 是否使用密码 @@ -143,6 +144,7 @@ func DefaultConfig() { Config.DB = 2 Config.MYSQL_DSN = MYSQL_DSN Config.PG_DSN = "" + Config.SlowQueryThreshold = 400 Config.REDIS_ADDR = REDIS_ADDR Config.TOKEN_USE_REDIS = false Config.REDIS_User_PW = false