zhangzengfei
2024-10-19 1ca4879df9cc3c22181b2a200aa4b793116d3d35
config/config.go
@@ -1,25 +1,46 @@
package config
import (
   "github.com/fsnotify/fsnotify"
   "github.com/spf13/viper"
   "log"
)
type servUrls struct {
   EsUrl     string `mapstructure: "esUrl"`
   ServerUrl string `mapstructure: "serverUrl"`
type common struct {
   EsUrl     string `mapstructure:"esUrl"`
   ServerUrl string `mapstructure:"serverUrl"`
   OrgName   string `mapstructure:"orgName"`
   Interval  int    `mapstructure:"pushInterval"`
}
var ServUrls = &servUrls{}
type logConfig struct {
   Path       string `mapstructure:"path"`       //日志存储路径
   Level      int    `mapstructure:"level"`      //日志等级
   MaxSize    int    `mapstructure:"maxSize"`    //日志文件大小上限
   MaxBackups int    `mapstructure:"maxBackups"` //日志压缩包个数
   MaxAge     int    `mapstructure:"maxAge"`     //保留压缩包天数
}
func Init(env string) {
var Options = &common{}
var LogConf = &logConfig{}
func Init() {
   var err error
   viper.SetConfigType("yaml")
   viper.SetConfigName(env)
   viper.SetConfigName("esSyncClient")
   viper.AddConfigPath("config")
   viper.AddConfigPath("../config")
   viper.AddConfigPath("")
   err = viper.ReadInConfig()
   if err != nil {
      log.Fatal("error on parsing configuration file", err)
   }
   viper.UnmarshalKey("servUrls", ServUrls)
   viper.UnmarshalKey("common", Options)
   viper.UnmarshalKey("log", LogConf)
   viper.WatchConfig()
   viper.OnConfigChange(func(in fsnotify.Event) {
      viper.UnmarshalKey("common", Options)
   })
}