46 lines
676 B
Go
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()
|
|
|
|
}
|