go的viper包读取yml配置文件
简介
go的viper包读取yml配置文件
代码
package main
import (
"fmt"
"github.com/spf13/viper"
"os"
)
func main() {
//获取当前项目目录
work, _ := os.Getwd()
// 读取当前文件夹下的 settings.yml文件
//设置文件名和文件后缀
viper.SetConfigName("settings")
viper.SetConfigType("yml")
//配置文件所在的文件夹
viper.AddConfigPath(work)
err := viper.ReadInConfig()
if err != nil {
panic(err)
}
//获取全部文件内容
fmt.Println("all settings: ", viper.AllSettings())
//根据内容类型,解析出不同类型
fmt.Println(viper.GetString("settings.logger.path"))
}
settings.yml 文件内容如下
settings:
logger:
# 日志存放路径
path: temp/logs
# 日志输出,file:文件,default:命令行,其他:命令行
stdout: '' #控制台日志,启用后,不输出到文件
# 日志等级, trace, debug, info, warn, error, fatal
level: trace
# 数据库日志开关
enableddb: false
结果
all settings: map[settings:map[logger:map[enableddb:false level:trace path:temp/logs stdout:]]]
temp/logs