From c5c805837643f1264b24626c345dac3bdc33e303 Mon Sep 17 00:00:00 2001 From: Tigor Hutasuhut Date: Tue, 30 Apr 2024 21:45:09 +0700 Subject: [PATCH] errs: log fields now not nested if error implements slog.LogValuer interface --- pkg/errs/errs.go | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/pkg/errs/errs.go b/pkg/errs/errs.go index a4dd706..a0882a1 100644 --- a/pkg/errs/errs.go +++ b/pkg/errs/errs.go @@ -55,16 +55,14 @@ func (er *Err) LogValue() slog.Value { if er.origin == nil { values = append(values, slog.Any("error", er.origin)) + } else if lv, ok := er.origin.(slog.LogValuer); ok { + values = append(values, slog.Attr{Key: "error", Value: lv.LogValue()}) } else { - errGroupValues := make([]slog.Attr, 0, 3) - errGroupValues = append(errGroupValues, slog.String("type", reflect.TypeOf(er.origin).String())) - if lv, ok := er.origin.(slog.LogValuer); ok { - errGroupValues = append(errGroupValues, slog.Attr{Key: "data", Value: lv.LogValue()}) - } else { - errGroupValues = append(errGroupValues, slog.String("message", er.origin.Error()), slog.Any("data", er.origin)) - } - - values = append(values, slog.Attr{Key: "error", Value: slog.GroupValue(errGroupValues...)}) + values = append(values, slog.Attr{Key: "error", Value: slog.GroupValue( + slog.String("type", reflect.TypeOf(er.origin).String()), + slog.String("message", er.origin.Error()), + slog.Any("data", er.origin), + )}) } return slog.GroupValue(values...)