Passed
Push — main ( 7e619e...36c76a )
by Yume
01:54
created

logger.NewLogger   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
dl 0
loc 3
rs 10
c 0
b 0
f 0
nop 0
1
package logger
2
3
import (
4
	"log/slog"
5
	"os"
6
	"runtime/debug"
7
)
8
9
type Logger struct {
10
	logLevel slog.Level
11
}
12
13
func NewLogger() *Logger {
14
	return &Logger{
15
		logLevel: slog.LevelInfo,
16
	}
17
}
18
19
func (l *Logger) SetLogLevel(level slog.Level) {
20
	l.logLevel = level
21
}
22
23
func (l *Logger) GetLogLevel() slog.Level {
24
	return l.logLevel
25
}
26
27
func (l *Logger) CreateSlogHandler() {
28
	handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
29
		Level:     l.logLevel,
30
		AddSource: l.logLevel == slog.LevelDebug,
31
	})
32
33
	buildInfo, _ := debug.ReadBuildInfo()
34
35
	logger := slog.New(handler)
36
37
	child := logger.With(
38
		slog.Group("program_info",
39
			slog.Int("pid", os.Getpid()),
40
			slog.String("go_version", buildInfo.GoVersion),
41
		))
42
43
	slog.SetDefault(child)
44
}
45