/
slog.go
89 lines (69 loc) · 1.59 KB
/
slog.go
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//go:build go1.21
package log
import (
"fmt"
"log/slog"
"os"
)
type logHandler struct {
slog *slog.Logger
}
func NewBenthosLogAdapter(l *slog.Logger) *logHandler {
return &logHandler{slog: l}
}
func (l *logHandler) WithFields(fields map[string]string) Modular {
tmp := l.slog
for k, v := range fields {
tmp = tmp.With(slog.String(k, v))
}
c := l.clone()
c.slog = tmp
return c
}
func (l *logHandler) With(keyValues ...any) Modular {
c := l.clone()
c.slog = l.slog.With(keyValues...)
return c
}
func (l *logHandler) Fatal(format string, v ...any) {
l.slog.Error(fmt.Sprintf(format, v...))
os.Exit(1)
}
func (l *logHandler) Error(format string, v ...any) {
l.slog.Error(fmt.Sprintf(format, v...))
}
func (l *logHandler) Warn(format string, v ...any) {
l.slog.Warn(fmt.Sprintf(format, v...))
}
func (l *logHandler) Info(format string, v ...any) {
l.slog.Info(fmt.Sprintf(format, v...))
}
func (l *logHandler) Debug(format string, v ...any) {
l.slog.Debug(fmt.Sprintf(format, v...))
}
func (l *logHandler) Trace(format string, v ...any) {
l.slog.Debug(fmt.Sprintf(format, v...))
}
func (l *logHandler) Fatalln(message string) {
l.slog.Error(message)
os.Exit(1)
}
func (l *logHandler) Errorln(message string) {
l.slog.Error(message)
}
func (l *logHandler) Warnln(message string) {
l.slog.Warn(message)
}
func (l *logHandler) Infoln(message string) {
l.slog.Info(message)
}
func (l *logHandler) Debugln(message string) {
l.slog.Debug(message)
}
func (l *logHandler) Traceln(message string) {
l.slog.Debug(message)
}
func (l *logHandler) clone() *logHandler {
c := *l
return &c
}