feat: externalize filter configuration and add global structured logging and job reprocessing functionality
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
var Log *zap.SugaredLogger
|
||||
|
||||
func init() {
|
||||
levelStr := os.Getenv("LOG_LEVEL")
|
||||
if levelStr == "" {
|
||||
levelStr = "info"
|
||||
}
|
||||
SetLevel(levelStr)
|
||||
}
|
||||
|
||||
func SetLevel(levelStr string) {
|
||||
var level zapcore.Level
|
||||
switch strings.ToLower(levelStr) {
|
||||
case "trace", "debug":
|
||||
level = zap.DebugLevel
|
||||
case "info":
|
||||
level = zap.InfoLevel
|
||||
case "warn":
|
||||
level = zap.WarnLevel
|
||||
case "error":
|
||||
level = zap.ErrorLevel
|
||||
default:
|
||||
level = zap.InfoLevel
|
||||
}
|
||||
|
||||
config := zap.NewDevelopmentConfig()
|
||||
config.Level = zap.NewAtomicLevelAt(level)
|
||||
config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
||||
// Customize the timestamp format if needed
|
||||
config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
|
||||
logger, _ := config.Build()
|
||||
Log = logger.Sugar()
|
||||
}
|
||||
Reference in New Issue
Block a user