Added log level configurable through env vars.
All checks were successful
Build Docker image / build (push) Successful in 55s
All checks were successful
Build Docker image / build (push) Successful in 55s
This commit is contained in:
parent
38691f4e85
commit
3986ae1c1e
1 changed files with 33 additions and 0 deletions
33
main.go
33
main.go
|
@ -75,7 +75,32 @@ type Payload struct {
|
||||||
var db *sql.DB
|
var db *sql.DB
|
||||||
var logger = slog.New(slog.NewJSONHandler(os.Stdout, nil))
|
var logger = slog.New(slog.NewJSONHandler(os.Stdout, nil))
|
||||||
|
|
||||||
|
// Helper function to map environment variable to slog.Level
|
||||||
|
func getLogLevelFromEnv(defaultLevel slog.Level) slog.Level {
|
||||||
|
logLevelStr := os.Getenv("LOG_LEVEL")
|
||||||
|
switch logLevelStr {
|
||||||
|
case "debug":
|
||||||
|
return slog.LevelDebug
|
||||||
|
case "info":
|
||||||
|
return slog.LevelInfo
|
||||||
|
case "warn":
|
||||||
|
return slog.LevelWarn
|
||||||
|
case "error":
|
||||||
|
return slog.LevelError
|
||||||
|
default:
|
||||||
|
return defaultLevel
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to create a new logger with a specified log level
|
||||||
|
func createLoggerWithLevel(level slog.Level) *slog.Logger {
|
||||||
|
return slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
||||||
|
Level: level,
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// Initial logger setup
|
||||||
slog.SetDefault(logger)
|
slog.SetDefault(logger)
|
||||||
|
|
||||||
// Load environment variables from .env file if it exists
|
// Load environment variables from .env file if it exists
|
||||||
|
@ -83,6 +108,14 @@ func main() {
|
||||||
logger.Info("No .env file found or error loading .env file (ignore this message when using container)", "error", err)
|
logger.Info("No .env file found or error loading .env file (ignore this message when using container)", "error", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update the logger based on the LOG_LEVEL environment variable
|
||||||
|
logLevel := getLogLevelFromEnv(slog.LevelInfo) // Default to info level
|
||||||
|
logger = createLoggerWithLevel(logLevel)
|
||||||
|
slog.SetDefault(logger) // Update the default logger to the new one with the specified log level
|
||||||
|
|
||||||
|
// Example usage of the logger with the new log level
|
||||||
|
logger.Info("Logger initialized with dynamic log level")
|
||||||
|
|
||||||
// Connect to PostgreSQL
|
// Connect to PostgreSQL
|
||||||
pgConnStr := os.Getenv("PG_DB")
|
pgConnStr := os.Getenv("PG_DB")
|
||||||
if err := connectToPostgreSQL(pgConnStr); err != nil {
|
if err := connectToPostgreSQL(pgConnStr); err != nil {
|
||||||
|
|
Loading…
Reference in a new issue