feat: externalize filter configuration and add global structured logging and job reprocessing functionality

This commit is contained in:
2026-08-14 15:27:50 -07:00
parent 890469fed8
commit 5510e3ac82
17 changed files with 257 additions and 80 deletions
+44
View File
@@ -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()
}