65
default:
66
}
68
}
69
70
// WithAttrs implements slog.Handler.
71
>
func (h *handler) WithAttrs(attrs []slog.Attr) slog.Handler {
slog.go
72
>
tags := make([]tag.Tag, len(h.tags), len(h.tags)+len(attrs))
73
>
copy(tags, h.tags)
74
>
for _, attr := range attrs {
75
>
tags = append(tags, tag.Zap(convertAttrToField(h.prependGroup(attr))))
76
>
}
77
>
return &handler{logger: h.logger, zapLogger: h.zapLogger, tags: tags, group: h.group}
78
}
79
80
// WithGroup implements slog.Handler.
81
>
func (h *handler) WithGroup(name string) slog.Handler {
slog.go
82
>
group := name
83
>
if h.group != "" {
84
>
group = h.group + "." + name
85
>
}
86
>
return &handler{logger: h.logger, zapLogger: h.zapLogger, tags: h.tags, group: group}
87
}
88
89
>
func (h *handler) prependGroup(attr slog.Attr) slog.Attr {
slog.go
90
>
if h.group == "" {
91
>
return attr
92
>
}
93
>
return slog.Attr{Key: h.group + "." + attr.Key, Value: attr.Value}
94
}
95