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  }