make gateway reload use new loglevel

This commit is contained in:
Cytown 2026-03-29 18:37:39 +08:00
parent e70928cc6f
commit 6340f1b389

View file

@ -100,11 +100,13 @@ func Run(debug bool, homePath, configPath string, allowEmptyStartup bool) error
return fmt.Errorf("error loading config: %w", err) return fmt.Errorf("error loading config: %w", err)
} }
logger.SetLevelFromString(cfg.Gateway.LogLevel) // Debug mode permanently overrides the config log level to DEBUG.
if debug { if debug {
logger.SetLevel(logger.DEBUG) logger.SetLevel(logger.DEBUG)
fmt.Println("🔍 Debug mode enabled") fmt.Println("🔍 Debug mode enabled")
} else {
logger.SetLevelFromString(cfg.Gateway.LogLevel)
logger.Infof("Log level set to %q", cfg.Gateway.LogLevel)
} }
provider, modelID, err := createStartupProvider(cfg, allowEmptyStartup) provider, modelID, err := createStartupProvider(cfg, allowEmptyStartup)
@ -187,7 +189,7 @@ func Run(debug bool, homePath, configPath string, allowEmptyStartup bool) error
logger.Warn("Config reload skipped: another reload is in progress") logger.Warn("Config reload skipped: another reload is in progress")
continue continue
} }
err := executeReload(ctx, agentLoop, newCfg, &provider, runningServices, msgBus, allowEmptyStartup) err := executeReload(ctx, agentLoop, newCfg, &provider, runningServices, msgBus, allowEmptyStartup, debug)
if err != nil { if err != nil {
logger.Errorf("Config reload failed: %v", err) logger.Errorf("Config reload failed: %v", err)
} }
@ -204,7 +206,7 @@ func Run(debug bool, homePath, configPath string, allowEmptyStartup bool) error
runningServices.reloading.Store(false) runningServices.reloading.Store(false)
continue continue
} }
err = executeReload(ctx, agentLoop, newCfg, &provider, runningServices, msgBus, allowEmptyStartup) err = executeReload(ctx, agentLoop, newCfg, &provider, runningServices, msgBus, allowEmptyStartup, debug)
if err != nil { if err != nil {
logger.Errorf("Manual reload failed: %v", err) logger.Errorf("Manual reload failed: %v", err)
} else { } else {
@ -222,9 +224,10 @@ func executeReload(
runningServices *services, runningServices *services,
msgBus *bus.MessageBus, msgBus *bus.MessageBus,
allowEmptyStartup bool, allowEmptyStartup bool,
debug bool,
) error { ) error {
defer runningServices.reloading.Store(false) defer runningServices.reloading.Store(false)
return handleConfigReload(ctx, agentLoop, newCfg, provider, runningServices, msgBus, allowEmptyStartup) return handleConfigReload(ctx, agentLoop, newCfg, provider, runningServices, msgBus, allowEmptyStartup, debug)
} }
func createStartupProvider( func createStartupProvider(
@ -392,6 +395,7 @@ func handleConfigReload(
runningServices *services, runningServices *services,
msgBus *bus.MessageBus, msgBus *bus.MessageBus,
allowEmptyStartup bool, allowEmptyStartup bool,
debug bool,
) error { ) error {
logger.Info("🔄 Config file changed, reloading...") logger.Info("🔄 Config file changed, reloading...")
@ -440,6 +444,14 @@ func handleConfigReload(
} }
logger.Info(" ✓ Provider, configuration, and services reloaded successfully (thread-safe)") logger.Info(" ✓ Provider, configuration, and services reloaded successfully (thread-safe)")
// Debug mode permanently overrides the config log level to DEBUG.
if !debug {
// Update log level last so that reload-related info/warn logs above are not suppressed.
logger.SetLevelFromString(newCfg.Gateway.LogLevel)
logger.Infof("Log level changing from current to %q", newCfg.Gateway.LogLevel)
}
return nil return nil
} }