package config
|
|
import (
|
"basic.com/valib/logger.git"
|
"github.com/fsnotify/fsnotify"
|
"github.com/spf13/viper"
|
"log"
|
)
|
|
type server struct {
|
AnalyServerId string `mapstructure:"analyServerId"`
|
NetworkAdapter string `mapstructure:"networkAdapter"`
|
}
|
|
var Server = &server{}
|
|
type esinfo struct {
|
EsIndex esindexlist `mapstructure:"index"`
|
}
|
|
type esindexlist struct {
|
AiOcean index `mapstructure:"aiOcean"`
|
}
|
|
type index struct {
|
IndexName string `mapstructure:"index"`
|
IndexType string `mapstructure:"type"`
|
}
|
|
type dbpersoncompare struct {
|
MysqlAddr string `mapstructure:"mysqlAddr"`
|
Username string `mapstructure:"username"`
|
Password string `mapstructure:"password"`
|
Database string `mapstructure:"database"`
|
PersonTable string `mapstructure:"personTable"`
|
ServePort int `mapstructure:"servePort"`
|
}
|
|
type espersoncompare struct {
|
ServePort int `mapstructure:"servePort"`
|
ESIP string `mapstructure:"esip"`
|
ESPort string `mapstructure:"esPort"`
|
}
|
|
var DbPersonCompInfo = &dbpersoncompare{}
|
|
var EsCompServerInfo = &espersoncompare{}
|
|
var EsInfo = &esinfo{}
|
|
type LogConfig struct {
|
Path string `mapstructure:"path"` //日志存储路径
|
Level int `mapstructure:"level"` //日志等级
|
MaxSize int `mapstructure:"maxSize"` //日志文件大小上限
|
MaxBackups int `mapstructure:"maxBackups"` //日志压缩包个数
|
MaxAge int `mapstructure:"maxAge"` //保留压缩包天数
|
}
|
|
var LogConf = &LogConfig{}
|
|
func Init(env string) {
|
var err error
|
v := viper.New()
|
v.SetConfigType("yaml")
|
v.SetConfigName(env)
|
v.AddConfigPath("./")
|
v.AddConfigPath("./config/")
|
err = v.ReadInConfig()
|
if err != nil {
|
log.Fatal("error on parsing configuration file")
|
}
|
read2Conf(v)
|
v.WatchConfig()
|
v.OnConfigChange(func(in fsnotify.Event) {
|
read2Conf(v)
|
})
|
}
|
|
func read2Conf(v *viper.Viper) {
|
v.UnmarshalKey("es", EsInfo)
|
v.UnmarshalKey("server", Server)
|
v.UnmarshalKey("dbpersoncompare", DbPersonCompInfo)
|
v.UnmarshalKey("espersoncompare", EsCompServerInfo)
|
v.UnmarshalKey("log", LogConf)
|
logger.SetLevel(LogConf.Level)
|
}
|