rts-sim-testing-service/config/config.go

71 lines
1.5 KiB
Go

package config
import (
"fmt"
"os"
"github.com/spf13/viper"
)
type AppConfig struct {
Env string
Server server
Datasource datasource
Logging log
Messaging messaging
Dynamics dynamics
}
type server struct {
Port int
}
type datasource struct {
Dsn string
}
type log struct {
Level string // 日志打印级别 debug info warn error
Format string // 输出日志格式 logfmt, json
Path string // 输出日志文件路径
FileName string // 输出日志文件名称
FileMaxSize int // 【日志分割】单个日志文件最多存储量 单位(mb)
FileMaxBackups int // 【日志分割】日志备份文件最多数量
MaxAge int // 日志保留时间,单位: 天 (day)
Compress bool // 是否压缩日志
Stdout bool // 是否输出到控制台
}
type messaging struct {
Centrifugo centrifugo
}
type centrifugo struct {
TokenSecret string
ApiKey string
ApiEndpoint string
Address string
}
type dynamics struct {
Ip string
UdpLocalPort int
UdpRemotePort int
HttpPort int
}
var Config AppConfig
// 加载配置
func LoadConfig() {
viper.SetConfigName("xiannccda.setting")
viper.SetConfigType("yml")
viper.AddConfigPath("./config/")
viper.AddConfigPath(".")
err := viper.ReadInConfig()
if err != nil {
panic(fmt.Errorf("读取配置文件错误: %w", err))
}
fmt.Println(os.Args)
err = viper.Unmarshal(&Config)
if err != nil {
panic(fmt.Errorf("解析配置文件错误: %w", err))
}
fmt.Println(Config)
}