Skip to content

Commit

Permalink
Merge pull request #300 from porters-xyz/change-log-level
Browse files Browse the repository at this point in the history
Change log level
  • Loading branch information
wtfsayo committed May 31, 2024
2 parents fc15ebf + e0e505c commit 8eef91e
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
32 changes: 31 additions & 1 deletion gateway/common/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
log "log/slog"
"os"
"strconv"
"strings"
"sync"
)

Expand All @@ -21,12 +22,14 @@ const (
REDIS_USER = "REDIS_USER"
REDIS_PASSWORD = "REDIS_PASSWORD"
INSTRUMENT_ENABLED = "ENABLE_INSTRUMENT"
LOG_LEVEL = "LOG_LEVEL"
)

// This may evolve to include config outside env, or use .env file for
// convenience
type Config struct {
defaults map[string]string
loglevel *log.LevelVar
}

var config *Config
Expand All @@ -36,13 +39,17 @@ func setupConfig() *Config {
configMutex.Do(func() {
config = &Config{
defaults: make(map[string]string),
loglevel: &log.LevelVar{},
}
config.defaults[SHUTDOWN_DELAY] = "5"
config.defaults[JOB_BUFFER_SIZE] = "50"
config.defaults[NUM_WORKERS] = "10"
config.defaults[HOST] = "localhost"
config.defaults[PORT] = "9000"
config.defaults[INSTRUMENT_ENABLED] = "false"

level := parseLogLevel(os.Getenv(LOG_LEVEL))
config.SetLogLevel(level)
})
return config
}
Expand All @@ -57,7 +64,7 @@ func GetConfig(key string) string {
if ok {
return defaultval
} else {
log.Warn("config not set no default", "key", key)
log.Warn("config not set, no default", "key", key)
return ""
}
}
Expand All @@ -81,3 +88,26 @@ func Enabled(key string) bool {
}
return boolval
}

func GetLogLevel() log.Level {
configval := GetConfig(LOG_LEVEL)
return parseLogLevel(configval)
}

func parseLogLevel(level string) log.Level {
if strings.EqualFold(level, "ERROR") {
return log.LevelError
} else if strings.EqualFold(level, "WARN") {
return log.LevelWarn
} else if strings.EqualFold(level, "DEBUG") {
return log.LevelDebug
} else {
return log.LevelInfo
}
}

func (c *Config) SetLogLevel(level log.Level) {
c.loglevel.Set(level)
logger := log.New(log.NewTextHandler(os.Stdout, &log.HandlerOptions{Level: c.loglevel}))
log.SetDefault(logger)
}
3 changes: 2 additions & 1 deletion gateway/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ import (
func gateway() {
// Start job queue
common.GetTaskQueue().SetupWorkers()
level := common.GetLogLevel()

log.Info("starting gateway")
log.Info("starting gateway", "level", level)
proxy.Start()

done := make(chan os.Signal, 1)
Expand Down

0 comments on commit 8eef91e

Please sign in to comment.