go的viper包读取yml配置文件

臭大佬 2022-10-29 11:28:42 1406
Go 
简介 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