2025-05-17 11:36:26 -04:00

57 lines
1.4 KiB
Go

package config
import (
"log"
"os"
"path/filepath"
"producer/pkg/utils"
"github.com/joho/godotenv"
)
// LoadConfig carga la configuración de la aplicación
func LoadConfig() error {
// Detectar directorio actual para debugging
cwd, err := os.Getwd()
if err != nil {
log.Printf("Error al obtener directorio actual: %v", err)
} else {
log.Printf("Directorio actual: %s", cwd)
}
// Intentar cargar .env desde la ubicación actual
if err := godotenv.Load(); err != nil {
log.Printf("No se pudo cargar .env desde la ubicación actual: %v", err)
// Intentar cargar desde ubicaciones alternativas
paths := []string{
"./.env",
"../.env",
"../../.env",
"../main/.env",
}
for _, path := range paths {
absPath, _ := filepath.Abs(path)
log.Printf("Intentando cargar .env desde: %s", absPath)
if err := godotenv.Load(path); err == nil {
log.Printf("Archivo .env cargado correctamente desde: %s", absPath)
return nil
}
}
log.Println("Continuando con variables de entorno del sistema")
return nil
}
log.Println("Archivo .env cargado correctamente")
return nil
}
// PrintConfigValues imprime valores de configuración para verificación
func PrintConfigValues() {
log.Printf("DB_HOST: %s", utils.GetEnv("DB_HOST", "not set"))
log.Printf("KAFKA_BOOTSTRAP_SERVERS: %s", utils.GetEnv("KAFKA_BOOTSTRAP_SERVERS", "not set"))
log.Printf("SERVER_PORT: %s", utils.GetEnv("SERVER_PORT", "not set"))
}