Go beegoconfig读取配置文件

Go beegoconfig读取配置文件,第1张

go语言使用beego/config模块读取配置文件

配置文件:conf.ini

// conf.ini

[logs]
log_level=debug
log_path=./logs/lagagent.log

[collect]
log_path=/home/work/nginx/access.log
topic=nginx_log

main.go

package main

import (
    "github.com/astaxie/beego/config"
    "errors"
)

var (
    appConf *Config
)

// log conf
type Config struct {
    logLevel string
    logPath string

    collectConf []CollectConf
}

// log collect
type CollectConf struct {
    logPath string
    topic string
}

func loadConf(confType, fileName string) (err error) {
    conf, err := conf.NewConfig(confType, fileName)
    if err != nil {
        fmt.Print("new config failed")    
        return
    }

    appConf = &Config{}
    appConf.logLevel = conf.String("logs::log_level")
    if len(appConf.logLevel) == 0 {
        appConf.logLevel = "debug"
    }

    appConf.logPath= conf.String("logs::log_path")
    if len(appConf.logPath) == 0 {
        appConf.logPath= "./logs"
    }

    err := loadCollectConf(conf)
    if err != nil {
        fmt.Printf("load collect conf failed!, err:%v\n", err)
        return
    }
    
    return
}

func loadCollectConf(conf config.Configer) (err error) {
    var cc CollectConf
    cc.logPath = conf.String("collect::log_path")
    if len(cc.logPath) == 0 {
        err = errors.New("invalid collect::log_path")
        return
    }

    cc.topic = conf.String("collect::topic")
    if len(cc.topic) == 0 {
        err = errors.New("invalid collect::topic")
        return
    }

    appConf.collectConf.append(appConf.collectConf, cc)  // 配置写入到Conf

    return

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/995128.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存