Files
platform/init/env/env.go

93 lines
1.4 KiB
Go
Raw Normal View History

2025-03-18 10:13:57 +08:00
package env
import (
"log/slog"
"os"
"github.com/gofiber/fiber/v2/log"
"github.com/joho/godotenv"
)
var (
AppName = "platform"
AppPort = "8080"
)
var (
DbHost = "localhost"
DbPort = "3306"
DbName string
DbUserName string
DbPassword string
)
var (
LogLevel = slog.LevelDebug
)
func Init() {
err := godotenv.Load()
if err != nil {
log.Debug("❓ 没有本地环境变量")
} else {
log.Debug("✔ 加载本地环境变量")
}
check()
}
func check() {
_AppName := os.Getenv("APP_NAME")
if _AppName != "" {
AppName = _AppName
}
_AppPort := os.Getenv("APP_PORT")
if _AppPort != "" {
AppPort = _AppPort
}
_DbHost := os.Getenv("DB_HOST")
if _DbHost != "" {
DbHost = _DbHost
}
_DbPort := os.Getenv("DB_PORT")
if _DbPort != "" {
DbPort = _DbPort
}
_DbName := os.Getenv("DB_NAME")
if _DbName != "" {
DbName = _DbName
} else {
panic("环境变量 DB_NAME 的值为空")
}
_DbUserName := os.Getenv("DB_USERNAME")
if _DbUserName != "" {
DbUserName = _DbUserName
} else {
panic("环境变量 DB_USERNAME 的值为空")
}
_DbPassword := os.Getenv("DB_PASSWORD")
if _DbPassword != "" {
DbPassword = _DbPassword
} else {
panic("环境变量 DB_PASSWORD 的值为空")
}
_LogLevel := os.Getenv("LOG_LEVEL")
switch _LogLevel {
case "debug":
LogLevel = slog.LevelDebug
case "info":
LogLevel = slog.LevelInfo
case "warn":
LogLevel = slog.LevelWarn
case "error":
LogLevel = slog.LevelError
}
}