perf(log): parse log level in filterFunc (#17194)

This commit is contained in:
zakir 2023-07-30 16:52:51 +08:00 committed by GitHub
parent 0b5e7ed0af
commit 883264db1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 10 deletions

View File

@ -33,6 +33,10 @@ Ref: https://keepachangelog.com/en/1.0.0/
* [#15956](https://github.com/cosmos/cosmos-sdk/pull/15956) Introduce an option for enabling error stack trace.
### Improvements
* [#17194](https://github.com/cosmos/cosmos-sdk/pull/17194) Avoid repeating parse log level in filterFunc.
## [v1.1.0](https://github.com/cosmos/cosmos-sdk/releases/tag/log/v1.1.0) - 2023-04-27
* [#15956](https://github.com/cosmos/cosmos-sdk/pull/15956) Introduce options to configure logger (enable/disable colored output, customize log timestamps).

View File

@ -35,7 +35,7 @@ func ParseLogLevel(levelStr string) (FilterFunc, error) {
}
// parse and validate the levels
filterMap := make(map[string]string)
filterMap := make(map[string]zerolog.Level)
list := strings.Split(l, ",")
for _, item := range list {
moduleAndLevel := strings.Split(item, ":")
@ -50,18 +50,19 @@ func ParseLogLevel(levelStr string) (FilterFunc, error) {
return nil, fmt.Errorf("duplicate module %s in log level list %s", module, list)
}
if _, err := zerolog.ParseLevel(level); err != nil {
zllevel, err := zerolog.ParseLevel(level)
if err != nil {
return nil, fmt.Errorf("invalid log level %s in log level list %s", level, list)
}
filterMap[module] = level
filterMap[module] = zllevel
}
filterFunc := func(key, lvl string) bool {
level, ok := filterMap[key]
zllevel, ok := filterMap[key]
if !ok { // no level filter for this key
// check if there is a default level filter
level, ok = filterMap[defaultLogLevelKey]
zllevel, ok = filterMap[defaultLogLevelKey]
if !ok {
return false
}
@ -72,11 +73,6 @@ func ParseLogLevel(levelStr string) (FilterFunc, error) {
panic(err)
}
zllevel, err := zerolog.ParseLevel(level)
if err != nil {
panic(err)
}
return zllvl < zllevel
}