WeChatFerry/clients/gohttp/args/unmarshal.go
2023-12-17 13:16:15 +08:00

46 lines
676 B
Go

package args
import (
"os"
"github.com/knadh/koanf/providers/confmap"
"github.com/opentdp/go-helper/logman"
)
func (c *Config) Unmarshal() {
// 读取默认配置
mp := map[string]any{
"logger": &Logger,
"httpd": &Httpd,
"wcf": &Wcf,
}
c.Koanf.Load(confmap.Provider(mp, "."), nil)
// 读取配置文件
c.ReadYaml()
for k, v := range mp {
c.Koanf.Unmarshal(k, v)
}
// 初始化日志
if Logger.Dir != "" && Logger.Dir != "." {
os.MkdirAll(Logger.Dir, 0755)
}
logman.SetDefault(&logman.Config{
Level: Logger.Level,
Target: Logger.Target,
Storage: Logger.Dir,
Filename: "rest",
})
// 写入配置文件
c.WriteYaml()
}