使用”github.com/dlintw/goconf” 与”github.com/larspensjo/config”读配置文件
首先应该下载包
go get "github.com/dlintw/goconf" --读取二级标题数据
go get "github.com/larspensjo/config" --读取一级标题数据,可兼容上个包
包会下载到 **$GOPATH/src** 路径下,否则默认下载到 **$GOROOT/src**下
导入包
import (
""github.com/dlintw/goconf""
"其他包"
)
单独读取二级标题配置文件:
//此函数默认将配置文件当做字符串读取,类型转换需要在函数外部自己实现
func read_conf_log_file(name string, name1 string) (interface{}, error){
c, err := goconf.ReadConfigFile("monitor.conf")
checkErr(err)
return c.GetString(name, name1)
}
//调用函数 传入参数应为配置文件的一级标题和二级标题名
log_size_warn, err := read_conf_log_file("log_file_size_warn", "size")
配置文件如下:
[mem]
mem_warn=10
[cpu]
cpu_warn=30
[disk]
disk_warn=10
[speed]
speed_warn=10
net_card=eth0
[log_file_size_warn]
size=10
[log]
log_path=/path/to/gotest/src/test_main/iwatch/1.conf
log_path2=/path/to/gotest/src/test_main/iwatch/2.conf
log_path3=/path/to/gotest/src/test_main/iwatch/3.conf
...
读取一级标题配置文件 (兼容上个包) –可用于同时读取多个未知的二级标题数据
/*
该函数可一次直接读取一级标题下的二级标题
再通过range方法迭代获得二级标题对应的每一个数据
最后将以map[key1,:value1, key2:value2...]类型返回给外部
key:二级标题 value:二级标题对应的数据
*/
func read_conf_log_file_map() (map[string]string, error){
cfg, err := config.ReadDefault("/path/to/gotest/src/test_main/iwatch/monitor.conf")
if err != nil {