github.com/netdata/go.d.plugin@v0.58.1/logger/level.go (about) 1 // SPDX-License-Identifier: GPL-3.0-or-later 2 3 package logger 4 5 import ( 6 "log/slog" 7 "strings" 8 ) 9 10 var Level = &level{lvl: &slog.LevelVar{}} 11 12 type level struct { 13 lvl *slog.LevelVar 14 } 15 16 func (l *level) Enabled(level slog.Level) bool { 17 return level >= l.lvl.Level() 18 } 19 20 func (l *level) Set(level slog.Level) { 21 l.lvl.Set(level) 22 } 23 24 func (l *level) SetByName(level string) { 25 switch strings.ToLower(level) { 26 case "err", "error": 27 l.lvl.Set(slog.LevelError) 28 case "warn", "warning": 29 l.lvl.Set(slog.LevelWarn) 30 case "info": 31 l.lvl.Set(slog.LevelInfo) 32 case "debug": 33 l.lvl.Set(slog.LevelDebug) 34 } 35 }