package config import ( "fmt" c "github.com/gookit/config/v2" "github.com/gookit/config/v2/yaml" "live-gateway/pkg/logger" "path/filepath" "runtime" "time" ) var ( _, b, _, _ = runtime.Caller(0) Root = filepath.Join(filepath.Dir(b), "../") ) var Config config type ( Kafka struct { Addr []string Topic string } config struct { Bilibili struct { Url string // 弹幕服务器url GetRoomUrl string // 获取房间信息url RoomId int64 // 待连接roomId UserId int64 // 用于连接的userId,0则随机生成 HeartbeatInterval time.Duration // 心跳间隔 单位s } // Log 日志配置 Log struct { File logger.FileConfig Console logger.ConsoleConfig } // Kafka 队列配置 Kafka struct { Danmaku Kafka } } ) func init() { var err error c.AddDriver(yaml.Driver) err = c.LoadFiles(Root + "/config.yml") if err != nil { panic(err) } err = c.BindStruct("", &Config) if err != nil { panic(err) } fmt.Printf("%+v\n", Config) }