global.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package global
  2. import (
  3. "fmt"
  4. "github.com/fsnotify/fsnotify"
  5. oplogging "github.com/op/go-logging"
  6. "github.com/spf13/viper"
  7. "hongze/hongze_google_api/config"
  8. "hongze/hongze_google_api/utils"
  9. "io"
  10. )
  11. var (
  12. CONFIG config.Config //配置文件
  13. LOG *oplogging.Logger
  14. MYSQL_LOG io.Writer
  15. )
  16. const ConfigFile = "config/config.yaml" //本地(测试)环境下的配置文件地址
  17. const ProConfigFile = "/home/code/config/hongze_yb_en_api/config/config.yaml" //生产环境下的配置文件地址
  18. func init() {
  19. v := viper.New()
  20. configFilePath := ConfigFile
  21. //如果不存在该配置文件,那么应该是线上环境,那么去寻找线上配置文件的路径
  22. if !utils.FileIsExist(configFilePath) {
  23. configFilePath = ProConfigFile
  24. }
  25. //设置配置文件
  26. v.SetConfigFile(configFilePath)
  27. err := v.ReadInConfig()
  28. if err != nil {
  29. panic(fmt.Errorf("读取配置失败,Err: %s \n", err))
  30. }
  31. //持续监听文件
  32. v.WatchConfig()
  33. v.OnConfigChange(func(e fsnotify.Event) {
  34. fmt.Println("配置文件变更:", e.Name)
  35. if err := v.Unmarshal(&CONFIG); err != nil {
  36. fmt.Println("配置重赋值失败,Err:", err)
  37. }
  38. fmt.Println(CONFIG)
  39. })
  40. if err := v.Unmarshal(&CONFIG); err != nil {
  41. fmt.Println("配置初始化赋值失败,Err:", err)
  42. }
  43. }