config.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package config
  2. import (
  3. "log"
  4. "github.com/rotisserie/eris"
  5. "github.com/spf13/viper"
  6. "sikey.com/websocket/utils/configx"
  7. "sikey.com/websocket/utils/zlog"
  8. )
  9. var (
  10. Config configx.Config
  11. Kafka kafka
  12. Redis redis
  13. Websocket websocket
  14. SLS slsCfg
  15. )
  16. func loadRestfulConfig() error {
  17. return viper.Unmarshal(&Config)
  18. }
  19. func loadKafkaConfig() error {
  20. return viper.UnmarshalKey("kafka", &Kafka)
  21. }
  22. func loadRedisConfig() error {
  23. return viper.UnmarshalKey("redis", &Redis)
  24. }
  25. func loadWebsocketConfig() error {
  26. return viper.UnmarshalKey("websocket", &Websocket)
  27. }
  28. func loadSLSConfig() error {
  29. return viper.UnmarshalKey("sls", &SLS)
  30. }
  31. // MustLoadConfig 加载配置
  32. func MustLoadConfig(file string) {
  33. err := configx.LoadConfig(file,
  34. loadRestfulConfig,
  35. loadKafkaConfig,
  36. loadRedisConfig,
  37. loadWebsocketConfig,
  38. loadSLSConfig,
  39. )
  40. if err != nil {
  41. log.Fatalln(eris.Wrap(err, "无法映射配置"))
  42. }
  43. log.Printf("Load configs [ toml ] from path [%s] \n", file)
  44. }
  45. // MustLoadLogger 初始化日志
  46. func MustLoadLogger() zlog.Writer {
  47. var (
  48. name = Config.Name
  49. env = Config.Environment
  50. path = viper.GetString("log.path")
  51. )
  52. writer, err := zlog.NewZeroWriter(name, path, env)
  53. if err != nil {
  54. panic(err)
  55. }
  56. return writer
  57. }