...
1
2
3
4
19
20 package textlogger
21
22 import (
23 "context"
24 "log/slog"
25
26 "github.com/go-logr/logr"
27
28 "k8s.io/klog/v2/internal/serialize"
29 "k8s.io/klog/v2/internal/sloghandler"
30 )
31
32 func (l *tlogger) Handle(ctx context.Context, record slog.Record) error {
33 return sloghandler.Handle(ctx, record, l.groups, l.printWithInfos)
34 }
35
36 func (l *tlogger) WithAttrs(attrs []slog.Attr) logr.SlogSink {
37 clone := *l
38 clone.values = serialize.WithValues(l.values, sloghandler.Attrs2KVList(l.groups, attrs))
39 return &clone
40 }
41
42 func (l *tlogger) WithGroup(name string) logr.SlogSink {
43 clone := *l
44 if clone.groups != "" {
45 clone.groups += "." + name
46 } else {
47 clone.groups = name
48 }
49 return &clone
50 }
51
52 var _ logr.SlogSink = &tlogger{}
53
View as plain text