-
Notifications
You must be signed in to change notification settings - Fork 51
Open
Description
config 파일을 읽는 코드와 config 파일의 변경을 인식하는 코드가 init()와 main()으로 구분되어 있고, config 파일의 종류가 많아져서 혼란이 발생할 가능성이 높습니다.
최근 commit에 새롭게 추가된 jwt_auth config로 인해(viper의 기본 객체 v.configName을 덮어쓰는 것으로 추정) cloud_conf.yaml 내용 변경을 인식하지 못하고 있습니다.
read 파트와 watch 파트를 config 파일별로 합치는 등의 방안이 있을 것 같은데, 좋은 의견 부탁드립니다.
Lines 139 to 155 in c1d8afa
fileName := "cloud_conf" | |
viper.AddConfigPath(".") | |
viper.AddConfigPath("./conf/") | |
viper.AddConfigPath("../conf/") | |
viper.SetConfigName(fileName) | |
viper.SetConfigType("yaml") | |
err := viper.ReadInConfig() | |
if err != nil { | |
log.Error().Err(err).Msg("") | |
panic(fmt.Errorf("fatal error reading cloud_conf: %w", err)) | |
} | |
log.Info().Msg(viper.ConfigFileUsed()) | |
err = viper.Unmarshal(&common.RuntimeConf) | |
if err != nil { | |
log.Error().Err(err).Msg("") | |
panic(err) | |
} |
Lines 207 to 213 in c1d8afa
jwtConfigfileName := "jwt_auth" | |
viper.SetConfigName(jwtConfigfileName) | |
err = viper.MergeInConfig() | |
if err != nil { | |
log.Error().Err(err).Msgf("fatal error reading jwt_auth info from file: %w", err) | |
panic(err) | |
} |
Lines 371 to 386 in c1d8afa
go func() { | |
viper.WatchConfig() | |
viper.OnConfigChange(func(e fsnotify.Event) { | |
log.Info().Msgf("Config file changed: %s", e.Name) | |
err := viper.ReadInConfig() | |
if err != nil { // Handle errors reading the config file | |
log.Error().Err(err).Msg("") | |
panic(fmt.Errorf("fatal error config file: %w", err)) | |
} | |
err = viper.Unmarshal(&common.RuntimeConf) | |
if err != nil { | |
log.Error().Err(err).Msg("") | |
panic(err) | |
} | |
}) | |
}() |
seokho-son
Metadata
Metadata
Assignees
Labels
No labels