diff --git a/deployment/clouddeploy/gke-workers/base/gitter.yaml b/deployment/clouddeploy/gke-workers/base/gitter.yaml index 317950beb58..d740312a8b8 100644 --- a/deployment/clouddeploy/gke-workers/base/gitter.yaml +++ b/deployment/clouddeploy/gke-workers/base/gitter.yaml @@ -32,8 +32,8 @@ spec: env: - name: GOMEMLIMIT value: "100GiB" - - name: DEBUG_LOG - value: "true" + - name: LOG_LEVEL + value: "debug" volumeMounts: - mountPath: /work name: disk-data diff --git a/go/logger/init.go b/go/logger/init.go index 5da13e635c3..3b62b07fb7a 100644 --- a/go/logger/init.go +++ b/go/logger/init.go @@ -7,6 +7,7 @@ import ( "os" "path/filepath" "strconv" + "strings" "sync" "cloud.google.com/go/errorreporting" @@ -119,8 +120,17 @@ func initTracing(ctx context.Context, projectID, serviceName string) { func cloudHandlerOptions() *slog.HandlerOptions { level := slog.LevelInfo - if os.Getenv("DEBUG_LOG") != "" { - level = slog.LevelDebug + if lvl := os.Getenv("LOG_LEVEL"); lvl != "" { + switch strings.ToLower(lvl) { + case "debug": + level = slog.LevelDebug + case "info": + level = slog.LevelInfo + case "warn": + level = slog.LevelWarn + case "error": + level = slog.LevelError + } } return &slog.HandlerOptions{ diff --git a/go/logger/localhandler.go b/go/logger/localhandler.go index 1673429dc62..88e03afe4cf 100644 --- a/go/logger/localhandler.go +++ b/go/logger/localhandler.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "log/slog" + "os" "strings" "github.com/charmbracelet/lipgloss" @@ -26,17 +27,35 @@ var ( ) type localHandler struct { - w io.Writer + w io.Writer + level slog.Level } +var _ slog.Handler = (*localHandler)(nil) + func newLocalHandler(w io.Writer) *localHandler { + level := slog.LevelInfo + if lvl := os.Getenv("LOG_LEVEL"); lvl != "" { + switch strings.ToLower(lvl) { + case "debug": + level = slog.LevelDebug + case "info": + level = slog.LevelInfo + case "warn": + level = slog.LevelWarn + case "error": + level = slog.LevelError + } + } + return &localHandler{ - w: w, + w: w, + level: level, } } -func (h *localHandler) Enabled(_ context.Context, _ slog.Level) bool { - return true +func (h *localHandler) Enabled(_ context.Context, level slog.Level) bool { + return level >= h.level } func (h *localHandler) Handle(_ context.Context, r slog.Record) error {