work in progress: logging config: evaluate Level setting

This commit is contained in:
Helmut Merz 2023-06-26 21:00:53 +02:00
parent 348478c220
commit 8dad97f6be
3 changed files with 23 additions and 4 deletions

View file

@ -7,6 +7,8 @@ import (
const (
DebugLevel = logging.DebugLevel
InfoLevel = logging.InfoLevel
WarnLevel = logging.WarnLevel
ErrorLevel = logging.ErrorLevel
)
var (

View file

@ -13,8 +13,12 @@ import (
const (
DebugLevel = zerolog.DebugLevel
InfoLevel = zerolog.InfoLevel
WarnLevel = zerolog.WarnLevel
ErrorLevel = zerolog.ErrorLevel
)
var Levels = map[string]zerolog.Level{}
type Logger = zerolog.Logger
var globalLogger *Logger = &log.Logger
@ -22,7 +26,7 @@ var globalLogger *Logger = &log.Logger
type Cfg struct {
*config.BaseCfg
Logfile string
Level zerolog.Level
Level string
}
func Setup(ctx lib.Context, cfg *Cfg, home string) {
@ -49,7 +53,10 @@ func New(cfg *Cfg, home string) (*Logger, error) {
GetLogger(nil).Err(err).Msg("logging.New: open log file")
return nil, err
}
logger := zerolog.New(f).With().Timestamp().Logger()
lc := zerolog.New(f).With().Timestamp()
// TODO: evaluate cfg.Level
// lc.Level(level)
logger := lc.Logger()
return &logger, nil
}
@ -60,3 +67,10 @@ func GetLogger(ctx lib.Context) *Logger {
// return ctx.Logger()
return globalLogger
}
func init() {
Levels["debug"] = DebugLevel
Levels["info"] = InfoLevel
Levels["warn"] = WarnLevel
Levels["error"] = ErrorLevel
}

View file

@ -20,6 +20,7 @@ func Config() lib.Config {
AppType: "standard",
Logging: &logging.Cfg{
Logfile: ovr("log/scopes.log", LOGFILE),
Level: ovr("info", LOGLEVEL),
},
}
app_c.AddAction("demo", action.Base(action.Forward, "test-receiver"))
@ -45,8 +46,9 @@ var (
// collect here the names of fields that may be overridden via
// explicit Override() or SCOPES_* environment settings.
const (
HOME = "home"
LOGFILE = "logfile"
HOME = "home"
LOGFILE = "logfile"
LOGLEVEL = "loglevel"
)
// in a production scenario this should be put in a separate
@ -54,5 +56,6 @@ const (
func Overrides() config.Settings {
return config.Settings{
//HOME: "tests",
LOGLEVEL: "debug",
}
}