func()

in internal/pkg/config/config.go [60:89]


func (c *Config) Watch(ctx context.Context, filename string) {
	f := file.Provider(filename)

	f.Watch(func(event interface{}, err error) {
		if err != nil {
			log.Printf("watch error: %v", err)
			return
		}
		// Throw away the old config and load a fresh copy.
		log.Println("config changed. Reloading ...")
		new_k := koanf.New(".")
		if err := new_k.Load(f, toml.Parser()); err != nil {
			log.Printf("error loading new config: %v", err)
			return
		}
		// Update the config
		c.koanf = new_k

		// Update the logger configuration
		var levelMap map[string]string
		var slogHandlerConfig loggerfactory.SlogHandlerConfig

		c.MustUnmarshal("logger.level.packages", &levelMap)
		c.MustUnmarshal("logger.handler", &slogHandlerConfig)

		cm := loggerfactory.GetConfigManager()
		cm.SetLogLevelMap(&levelMap)
		cm.SetSlogHandlerConfig(slogHandlerConfig)
	})
}