From 7bd80d4180bb11307f359ec9b391ae41b6a9ae07 Mon Sep 17 00:00:00 2001 From: Kylesoda <249518290+kylesoda@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:32:27 -0500 Subject: [PATCH] feat: enhance logging configuration to use dynamic log level from environment variable --- cmd/go_migrate/log.go | 11 ++++++++++- internal/app/config/main.go | 8 ++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/cmd/go_migrate/log.go b/cmd/go_migrate/log.go index a7afee3..29c1934 100644 --- a/cmd/go_migrate/log.go +++ b/cmd/go_migrate/log.go @@ -3,6 +3,7 @@ package main import ( "time" + "git.ksdemosapps.com/kylesoda/go-migrate/internal/app/config" log "github.com/sirupsen/logrus" ) @@ -13,5 +14,13 @@ func configureLog() { DisableSorting: false, PadLevelText: true, }) - log.SetLevel(log.DebugLevel) + + logLevelEnv := config.App.LogLevel + logLevel, err := log.ParseLevel(logLevelEnv) + if err != nil { + log.Warnf("Nivel de log inválido '%s', usando INFO por defecto", logLevelEnv) + logLevel = log.InfoLevel + } + + log.SetLevel(logLevel) } diff --git a/internal/app/config/main.go b/internal/app/config/main.go index 94e751d..5a31627 100644 --- a/internal/app/config/main.go +++ b/internal/app/config/main.go @@ -2,6 +2,7 @@ package config import ( "os" + "strings" "github.com/joho/godotenv" log "github.com/sirupsen/logrus" @@ -10,6 +11,7 @@ import ( type appConfig struct { SourceDbUrl string TargetDbUrl string + LogLevel string } func loadEnv() { @@ -32,9 +34,15 @@ func getAppConfig() appConfig { log.Fatal("TARGET_DB_URL environment variable not set") } + logLevel := strings.ToUpper(os.Getenv("LOG_LEVEL")) + if logLevel == "" { + logLevel = "INFO" + } + return appConfig{ SourceDbUrl: sourceDbUrl, TargetDbUrl: targetDbUrl, + LogLevel: logLevel, } }