init.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package main
  2. import (
  3. "fmt"
  4. "github.com/spf13/viper"
  5. "go.uber.org/zap"
  6. "gorm.io/driver/mysql"
  7. "gorm.io/gorm"
  8. "gorm.io/gorm/logger"
  9. "jygit.jydev.jianyu360.cn/data_processing/common_utils/log"
  10. "jygit.jydev.jianyu360.cn/data_processing/common_utils/mongodb"
  11. "os"
  12. "time"
  13. )
  14. var GF GlobalConf
  15. func InitConfig() (err error) {
  16. viper.SetConfigFile("config.toml") // 指定配置文件路径
  17. viper.SetConfigName("config") // 配置文件名称(无扩展名)
  18. viper.SetConfigType("toml") // 如果配置文件的名称中没有扩展名,则需要配置此项
  19. viper.AddConfigPath("./")
  20. viper.AddConfigPath("./conf/") // 还可以在工作目录中查找配置
  21. viper.AddConfigPath("../conf/") // 还可以在工作目录中查找配置
  22. err = viper.ReadInConfig() // 查找并读取配置文件
  23. if err != nil { // 处理读取配置文件的错误
  24. return
  25. }
  26. err = viper.Unmarshal(&GF)
  27. return err
  28. }
  29. // Init 初始化配置
  30. func Init() {
  31. InitConfig()
  32. InitLog()
  33. InitMgo()
  34. InitMysql()
  35. }
  36. func InitMgo() {
  37. //87 竞品
  38. Mgo = &mongodb.MongodbSim{
  39. //MongodbAddr: "172.17.189.140:27080",
  40. MongodbAddr: GF.Mongob.Host,
  41. Size: 10,
  42. DbName: GF.Mongob.DB,
  43. UserName: "",
  44. Password: "",
  45. Direct: GF.Mongob.Direct,
  46. }
  47. Mgo.InitPool()
  48. }
  49. func InitMysql() {
  50. now := time.Now()
  51. username := GF.Mysql.Username
  52. password := GF.Mysql.Password
  53. host := GF.Mysql.Address // 本地
  54. //host := "172.17.162.27:14000" //线上
  55. database := GF.Mysql.Dbname
  56. dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", username, password, host, database)
  57. // 连接到数据库
  58. var err error
  59. MysqlDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
  60. Logger: logger.Default.LogMode(logger.Error), //不打印日志
  61. })
  62. if err != nil {
  63. log.Info("InitMysql", zap.String("初始化MySQL "+database, "数据库失败"), zap.Error(err))
  64. return
  65. } else {
  66. log.Info("InitMysql", zap.String("初始化MySQL "+database, "数据库成功"))
  67. }
  68. log.Info("InitMysql", zap.Any("duration", time.Since(now).Seconds()))
  69. }
  70. func InitLog() {
  71. now := time.Now()
  72. err := log.InitLog(
  73. log.Path(GF.Log.LogPath),
  74. log.Level(GF.Log.LogLevel),
  75. log.Compress(GF.Log.Compress),
  76. log.MaxSize(GF.Log.MaxSize),
  77. log.MaxBackups(GF.Log.MaxBackups),
  78. log.MaxAge(GF.Log.MaxAge),
  79. log.Format(GF.Log.Format),
  80. )
  81. if err != nil {
  82. fmt.Printf("InitLog failed: %v\n", err)
  83. os.Exit(1)
  84. }
  85. log.Info("InitLog", zap.Any("duration", time.Since(now).Seconds()))
  86. }