71 lines
1.5 KiB
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)
|
|
}
|