我只是尝试为我的第一个应用程序使用ini文件进行配置。
我有这样的配置文件
[server]
port = 1020
environment = "development"
和一些用于读取配置文件的代码。
package config
import (
"log"
"gopkg.in/gcfg.v1"
)
type ServerConfig struct {
Port int `gcfg:"port"`
Environment string `gcfg:"environment"`
}
var Server ServerConfig
func InitConfig() {
err := InitConfigServer()
if err != nil {
log.Panicln("Error init config server : ", err)
return
}
}
func InitConfigServer() error {
err := gcfg.ReadFileInto(&Server, "files/config/config-main.ini")
return err
}
和我的main.go将调用InitConfig() 当我尝试运行main.go时,出现了错误
Error init config server : warnings:
can't store data at section "server"
can't store data at section "server"
panic: Error init config server : warnings:
can't store data at section "server"
can't store data at section "server"
有人可以解释该错误实际发生了什么吗?我无法清楚地了解此配置文件出了什么问题。
谢谢
答案 0 :(得分:0)
根据文档:“该部分对应于config结构中的结构字段”。您应该读入带有字段Server
的结构(以使用server
部分)。该字段的类型可能为ServerConfig
:
type Config struct {
Server ServerConfig `gcfg:"server"`
}
type ServerConfig struct {
Port int `gcfg:"port"`
Environment string `gcfg:"environment"`
}
var Config Config
func InitConfig() {
err := InitConfigServer()
if err != nil {
log.Panicln("Error init config server : ", err)
return
}
}
func InitConfigServer() error {
err := gcfg.ReadFileInto(&Config, "files/config/config-main.ini")
return err
}