package core import ( "fmt" "github.com/fsnotify/fsnotify" "github.com/spf13/viper" "hongze/hongze_yb/global" "hongze/hongze_yb/utils" ) const ConfigFile = "config/config.yaml" //本地(测试)环境下的配置文件地址 const ProConfigFile = "/home/code/config/hongze_yb/config/config.yaml" //生产环境下的配置文件地址 func init() { v := viper.New() configFilePath := ConfigFile //如果不存在该配置文件,那么应该是线上环境,那么去寻找线上配置文件的路径 if !utils.FileIsExist(configFilePath) { configFilePath = ProConfigFile } //设置配置文件 v.SetConfigFile(configFilePath) err := v.ReadInConfig() if err != nil { panic(fmt.Errorf("读取配置失败,Err: %s \n", err)) } //持续监听文件 v.WatchConfig() v.OnConfigChange(func(e fsnotify.Event) { fmt.Println("配置文件变更:", e.Name) if err := v.Unmarshal(&global.CONFIG); err != nil { fmt.Println("配置重赋值失败,Err:", err) } fmt.Println(global.CONFIG) }) if err := v.Unmarshal(&global.CONFIG); err != nil { fmt.Println("配置初始化赋值失败,Err:", err) } }