栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

Go beego/config读取配置文件

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Go beego/config读取配置文件

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:%vn", 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

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/906967.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号