evcc-io/util/logstash/element.go
andig 7a3390a06a
Some checks failed
Release / call-build-workflow (push) Has been cancelled
Release / Publish Docker :release (push) Has been cancelled
Release / Github & APT (push) Has been cancelled
Release / Demo (push) Has been cancelled
Release / Hassio Addon (push) Has been cancelled
Fix crash retrieving log level
2024-05-02 21:04:37 +02:00

25 lines
554 B
Go

package logstash
import (
"regexp"
"slices"
jww "github.com/spf13/jwalterweatherman"
)
type element string
var re = regexp.MustCompile(`^\[([a-zA-Z0-9-]+)\s*\] (\w+) `)
func (e element) areaLevel() (string, jww.Threshold) {
m := re.FindAllStringSubmatch(string(e), 1)
if len(m) != 1 || len(m[0]) != 3 {
return "", jww.LevelError
}
return m[0][1], LogLevelToThreshold(m[0][2])
}
func (e element) match(areas []string, level jww.Threshold) bool {
a, l := e.areaLevel()
return (len(areas) == 0 || slices.Contains(areas, a)) && l >= level
}