From cad1a5062cf2035d8bdf24d031551897791e2342 Mon Sep 17 00:00:00 2001 From: Muhammed Efe Cetin Date: Wed, 20 Aug 2025 10:40:02 +0300 Subject: [PATCH] config: allow setting log level from yaml config --- config.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/config.go b/config.go index 3b9a7b5..a9dd0bc 100644 --- a/config.go +++ b/config.go @@ -56,6 +56,11 @@ type Config struct { // Special extensions for the download map SpecialExtensions map[string]string `mapstructure:"specialExtensions"` + // LogLevel is the log level to use for the application. + // It can be one of: "debug", "info", "warn", "error", "fatal", "panic". + // If not set, it defaults to "warn". + LogLevel string `mapstructure:"logLevel"` + // ReloadFunc is called when a reload is done via http api. ReloadFunc func() @@ -112,6 +117,15 @@ func (r *Redirector) ReloadConfig() error { } } + // set log level + level, err := log.ParseLevel(r.config.LogLevel) + if err != nil { + log.WithField("level", r.config.LogLevel).Warning("Invalid log level, using default") + level = log.WarnLevel + } + + log.SetLevel(level) + // db can be hot-reloaded if the file changed r.db, err = maxminddb.Open(r.config.GeoDBPath) if err != nil {