gorm.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package internal
  2. import (
  3. "log"
  4. "os"
  5. "time"
  6. "gorm.io/gorm"
  7. "gorm.io/gorm/logger"
  8. "log-server/global"
  9. )
  10. type DBBASE interface {
  11. GetLogMode() string
  12. }
  13. var Gorm = new(_gorm)
  14. type _gorm struct{}
  15. // Config gorm 自定义配置
  16. // Author [SliverHorn](https://github.com/SliverHorn)
  17. func (g *_gorm) Config() *gorm.Config {
  18. config := &gorm.Config{DisableForeignKeyConstraintWhenMigrating: true}
  19. _default := logger.New(NewWriter(log.New(os.Stdout, "\r\n", log.LstdFlags)), logger.Config{
  20. SlowThreshold: 200 * time.Millisecond,
  21. LogLevel: logger.Warn,
  22. Colorful: true,
  23. })
  24. var logMode DBBASE
  25. switch global.GVA_CONFIG.System.DbType {
  26. case "mysql":
  27. logMode = &global.GVA_CONFIG.Mysql
  28. break
  29. case "pgsql":
  30. logMode = &global.GVA_CONFIG.Pgsql
  31. break
  32. default:
  33. logMode = &global.GVA_CONFIG.Mysql
  34. }
  35. switch logMode.GetLogMode() {
  36. case "silent", "Silent":
  37. config.Logger = _default.LogMode(logger.Silent)
  38. case "error", "Error":
  39. config.Logger = _default.LogMode(logger.Error)
  40. case "warn", "Warn":
  41. config.Logger = _default.LogMode(logger.Warn)
  42. case "info", "Info":
  43. config.Logger = _default.LogMode(logger.Info)
  44. default:
  45. config.Logger = _default.LogMode(logger.Info)
  46. }
  47. return config
  48. }