summaryrefslogtreecommitdiffstats
path: root/src/go/collectors/go.d.plugin/logger/level.go
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-05 11:19:16 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-07-24 09:53:24 +0000
commitb5f8ee61a7f7e9bd291dd26b0585d03eb686c941 (patch)
treed4d31289c39fc00da064a825df13a0b98ce95b10 /src/go/collectors/go.d.plugin/logger/level.go
parentAdding upstream version 1.44.3. (diff)
downloadnetdata-b5f8ee61a7f7e9bd291dd26b0585d03eb686c941.tar.xz
netdata-b5f8ee61a7f7e9bd291dd26b0585d03eb686c941.zip
Adding upstream version 1.46.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--src/go/collectors/go.d.plugin/logger/level.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/logger/level.go b/src/go/collectors/go.d.plugin/logger/level.go
new file mode 100644
index 000000000..97dccb205
--- /dev/null
+++ b/src/go/collectors/go.d.plugin/logger/level.go
@@ -0,0 +1,54 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+
+package logger
+
+import (
+ "log/slog"
+ "strings"
+)
+
+const (
+ levelNotice = slog.Level(2)
+ levelDisable = slog.Level(99)
+)
+
+var (
+ customLevels = map[slog.Leveler]string{
+ levelNotice: "NOTICE",
+ }
+ customLevelsTerm = map[slog.Leveler]string{
+ levelNotice: "\u001B[34m" + "NTC" + "\u001B[0m",
+ }
+)
+
+var Level = &level{lvl: &slog.LevelVar{}}
+
+type level struct {
+ lvl *slog.LevelVar
+}
+
+func (l *level) Enabled(level slog.Level) bool {
+ return level >= l.lvl.Level()
+}
+
+func (l *level) Set(level slog.Level) {
+ l.lvl.Set(level)
+}
+
+func (l *level) SetByName(level string) {
+ // https://github.com/netdata/netdata/tree/master/src/libnetdata/log#log-levels
+ switch strings.ToLower(level) {
+ case "err", "error":
+ l.lvl.Set(slog.LevelError)
+ case "warn", "warning":
+ l.lvl.Set(slog.LevelWarn)
+ case "notice":
+ l.lvl.Set(levelNotice)
+ case "info":
+ l.lvl.Set(slog.LevelInfo)
+ case "debug":
+ l.lvl.Set(slog.LevelDebug)
+ case "emergency", "alert", "critical":
+ l.lvl.Set(levelDisable)
+ }
+}