gorm.go 892 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package database
  2. import (
  3. "kpt-tmr-group/config"
  4. KptLogger "kpt-tmr-group/pkg/logger/logrus"
  5. "kpt-tmr-group/pkg/xerr"
  6. "time"
  7. "gorm.io/gorm"
  8. "gorm.io/driver/mysql"
  9. "gorm.io/gorm/logger"
  10. )
  11. type goRmLog struct {
  12. }
  13. func (g goRmLog) Printf(s string, i ...interface{}) {
  14. KptLogger.Infof(s, i...)
  15. }
  16. // NewDatabase return xorm engine
  17. // with some default params
  18. func NewDatabase(cfg *config.AppConfig, drivers ...string) (*gorm.DB, error) {
  19. newLogger := logger.New(
  20. goRmLog{},
  21. logger.Config{
  22. SlowThreshold: 5 * time.Second,
  23. LogLevel: logger.Info,
  24. },
  25. )
  26. db, err := gorm.Open(mysql.New(mysql.Config{
  27. DriverName: cfg.StoreSetting.DriverName,
  28. DSN: cfg.StoreSetting.KptEventDSNRW}),
  29. &gorm.Config{Logger: newLogger},
  30. )
  31. if err != nil {
  32. panic(xerr.WithStack(err))
  33. }
  34. if cfg.StoreSetting.ShowSQL {
  35. db.Logger.LogMode(logger.Info)
  36. }
  37. return db, err
  38. }