71f9802e1a
Split Query Running + Debugging Full Flow * completedquerysyncrunner * spliitinglogic * synccomplete * informdependents * only push same collector * deps * livetesting * foundissue * some issues resolved * activeupdate * collectorupdatefixes * fix dbquesries * tests * tests * pollingdebug
47 lines
793 B
Go
47 lines
793 B
Go
package logger
|
|
|
|
import (
|
|
"log/slog"
|
|
"os"
|
|
)
|
|
|
|
type LogConfig struct {
|
|
Logger *slog.Logger
|
|
LogLevel string `env:"LOG_LEVEL"`
|
|
}
|
|
|
|
type ConfigProvider interface {
|
|
SetDefaultLogger()
|
|
GetLogLevel() slog.Leveler
|
|
GetLogger() *slog.Logger
|
|
PrintConfig(prefixSecret string)
|
|
}
|
|
|
|
func (b *LogConfig) GetLogger() *slog.Logger {
|
|
return b.Logger
|
|
}
|
|
|
|
func (b *LogConfig) GetLogLevel() slog.Leveler {
|
|
level := slog.LevelInfo
|
|
switch b.LogLevel {
|
|
case "DEBUG":
|
|
level = slog.LevelDebug
|
|
case "ERROR":
|
|
level = slog.LevelError
|
|
case "INFO":
|
|
level = slog.LevelInfo
|
|
case "WARN":
|
|
level = slog.LevelWarn
|
|
}
|
|
|
|
return level
|
|
}
|
|
|
|
func (b *LogConfig) SetDefaultLogger() {
|
|
b.Logger = slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: b.GetLogLevel(),
|
|
}))
|
|
|
|
slog.SetDefault(b.Logger)
|
|
}
|