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