From 94230ab4dc31019577b47e376fad915263a9f9aa Mon Sep 17 00:00:00 2001 From: Ben Sarmiento Date: Thu, 7 Dec 2023 16:19:35 +0100 Subject: [PATCH] Add way to specify log level --- pkg/http/client.go | 1 + pkg/logutil/factory.go | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/pkg/http/client.go b/pkg/http/client.go index c9cb070..a003b66 100644 --- a/pkg/http/client.go +++ b/pkg/http/client.go @@ -10,6 +10,7 @@ import ( "github.com/debridmediamanager/zurg/internal/config" "github.com/debridmediamanager/zurg/pkg/logutil" + cmap "github.com/orcaman/concurrent-map/v2" ) diff --git a/pkg/logutil/factory.go b/pkg/logutil/factory.go index 19f289e..19a6046 100644 --- a/pkg/logutil/factory.go +++ b/pkg/logutil/factory.go @@ -16,7 +16,26 @@ type Logger struct { } func NewLogger(logPath string) *Logger { + envLogLevel := os.Getenv("LOG_LEVEL") + var zapLevel zapcore.Level + + switch envLogLevel { + case "DEBUG": + zapLevel = zapcore.DebugLevel + case "INFO": + zapLevel = zapcore.InfoLevel + case "WARN": + zapLevel = zapcore.WarnLevel + case "ERROR": + zapLevel = zapcore.ErrorLevel + case "FATAL": + zapLevel = zapcore.FatalLevel + default: + zapLevel = zapcore.InfoLevel + } + zapCfg := zap.NewDevelopmentConfig() + zapCfg.Level.SetLevel(zapLevel) consoleCfg := zapcore.EncoderConfig{ TimeKey: "time", @@ -45,6 +64,7 @@ func NewLogger(logPath string) *Logger { EncodeDuration: zapcore.StringDurationEncoder, } fileEncoder := zapcore.NewConsoleEncoder(fileCfg) + // Set up file logging with overwrite mode logFile, err := os.OpenFile(logPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644) if err != nil {