带有go-viper的多个配置文件

时间:2017-11-08 16:50:36

标签: go viper-go

是否可以使用Viper加载/合并多个配置文件?假设我有一个包含我的程序配置的通用配置文件,以及每个客户端配置的客户端特定配置文件,其中一个将被加载,具体取决于程序的输入。

感谢。

1 个答案:

答案 0 :(得分:8)

with 'Foo::Abstract'; ReadInConfigMergeInConfig,可以多次调用。这是一个(未经测试的)示例:

viper

它按以下顺序读取这些文件:

  • viper.SetConfigName("default") viper.AddConfigPath(path) viper.ReadInConfig() if context != "" { viper.SetConfigName(context) viper.AddConfigPath(path) viper.MergeInConfig() } viper.SetConfigName("config") viper.AddConfigPath(".") viper.MergeInConfig()
  • $path/default.[yaml|toml|json]
  • $path/$context.[yaml|toml|json]