From a365513177205105ee550cdb7b8a0c1fe64e56cc Mon Sep 17 00:00:00 2001
From: Vasiliy Tolstov <v.tolstov@unistack.org>
Date: Fri, 21 Feb 2025 18:12:17 +0300
Subject: [PATCH] logger: fixup WithAddFields

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
---
 logger/options.go        | 5 +++++
 logger/slog/slog_test.go | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/logger/options.go b/logger/options.go
index 12cff7e4..475bad55 100644
--- a/logger/options.go
+++ b/logger/options.go
@@ -2,6 +2,7 @@ package logger
 
 import (
 	"context"
+	"fmt"
 	"io"
 	"log/slog"
 	"os"
@@ -99,7 +100,11 @@ func WithAddFields(fields ...interface{}) Option {
 					iv, iok := o.Fields[i].(string)
 					jv, jok := fields[j].(string)
 					if iok && jok && iv == jv {
+						fmt.Printf("AAAA o.Fields:%v old:%v new:%v\n", o.Fields[i], o.Fields[i+1], fields[j+1])
+						o.Fields[i+1] = fields[j+1]
+						fmt.Printf("BBBB o.Fields:%v old:%v new:%v\n", o.Fields[i], o.Fields[i+1], fields[j+1])
 						fields = slices.Delete(fields, j, j+2)
+
 					}
 				}
 			}
diff --git a/logger/slog/slog_test.go b/logger/slog/slog_test.go
index 1dae9109..031cc9fe 100644
--- a/logger/slog/slog_test.go
+++ b/logger/slog/slog_test.go
@@ -124,7 +124,7 @@ func TestWithDedupKeysWithAddFields(t *testing.T) {
 
 	l.Info(ctx, "msg3")
 
-	if !bytes.Contains(buf.Bytes(), []byte(`msg=msg3 key1=val1 key2=val2`)) {
+	if !bytes.Contains(buf.Bytes(), []byte(`msg=msg3 key1=val4 key2=val3`)) {
 		t.Fatalf("logger error not works, buf contains: %s", buf.Bytes())
 	}
 }