From e1b122025ffce2d37333f449654a91c498d61092 Mon Sep 17 00:00:00 2001 From: Raphael Fakhri <153192858+RaphaelFakhri@users.noreply.github.com> Date: Thu, 22 Oct 2026 12:48:28 +0000 Subject: [PATCH] fix(json): keep comma after an empty slog group --- json.go | 2 ++ logger_121_test.go | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/json.go b/json.go index 9833f16..0a72c2d 100644 --- a/json.go +++ b/json.go @@ -82,11 +82,13 @@ func (l *Logger) jsonFormatterItem(jw *jsonWriter, key, value any) { func (l *Logger) writeSlogValue(jw *jsonWriter, v slogValue) { switch v.Kind() { case slogKindGroup: + d := jw.d jw.start() for _, attr := range v.Group() { l.jsonFormatterItem(jw, attr.Key, attr.Value) } jw.end() + jw.d = d default: a := v.Any() _, jm := a.(json.Marshaler) diff --git a/logger_121_test.go b/logger_121_test.go index 44815b7..bd09e1e 100644 --- a/logger_121_test.go +++ b/logger_121_test.go @@ -256,6 +256,14 @@ func TestSlogAttr(t *testing.T) { )}, }, }, + { + name: "log valuer empty group", + expected: `{"level":"info","msg":"message","lv":{},"k":"v"}` + "\n", + kvs: []any{ + "lv", testLogValue{slog.GroupValue()}, + "k", "v", + }, + }, } for _, c := range cases {