-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathlog.go
More file actions
29 lines (24 loc) · 743 Bytes
/
log.go
File metadata and controls
29 lines (24 loc) · 743 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main
import (
"log/slog"
"github.com/CrowdStrike/perseus/internal/log"
)
var (
// stores the process-level verbosity
logLevel logLevelVar
// the logger
logger = log.New(&logLevel)
)
// logLevelVar wraps a boolean value that controls logging verbosity and satisfies the [slog.Leveler]
// interface to translate that boolean to the equivalent [slog.Level], either [slog.LevelDebug] or [slog.LevelInfo].
type logLevelVar struct {
debugMode bool
}
// Level satisfies the [slog.Leveler] interface and returns either [slog.LevelDebug] or [slog.LevelInfo]
// depending on whether or not debug verbosity was enabled.
func (v *logLevelVar) Level() slog.Level {
if v.debugMode {
return slog.LevelDebug
}
return slog.LevelInfo
}