From cd108cfb038204b8609a414df6b79f8da42e7967 Mon Sep 17 00:00:00 2001 From: Pavlo Sumkin Date: Thu, 3 Oct 2024 22:45:12 +0200 Subject: [PATCH] chore(outputs.groundwork): Simplify log-adapter: part2 --- plugins/outputs/groundwork/groundwork_test.go | 39 +++++-------------- plugins/outputs/groundwork/log_adapter.go | 19 +++++---- 2 files changed, 20 insertions(+), 38 deletions(-) diff --git a/plugins/outputs/groundwork/groundwork_test.go b/plugins/outputs/groundwork/groundwork_test.go index 78ae6078d27be..c58ef336aaf10 100644 --- a/plugins/outputs/groundwork/groundwork_test.go +++ b/plugins/outputs/groundwork/groundwork_test.go @@ -52,17 +52,8 @@ func TestWriteWithDefaults(t *testing.T) { require.NoError(t, err) })) - testLogger := func() telegraf.Logger { - if err := logger.SetupLogging(&logger.Config{Debug: true}); err != nil { - return nil - } - l := new(testutil.Logger) - log.Logger = NewLogger(l).WithGroup("tcg.sdk") - return l - }() - i := Groundwork{ - Log: testLogger, + Log: new(testutil.Logger), Server: server.URL, AgentID: defaultTestAgentID, DefaultHost: defaultHost, @@ -76,6 +67,8 @@ func TestWriteWithDefaults(t *testing.T) { }, } + require.NoError(t, logger.SetupLogging(&logger.Config{Debug: true})) + log.Logger = NewLogger(i.Log).WithGroup("tcg.sdk") err := i.Write([]telegraf.Metric{intMetric}) require.NoError(t, err) @@ -111,17 +104,8 @@ func TestWriteWithFields(t *testing.T) { require.NoError(t, err) })) - testLogger := func() telegraf.Logger { - if err := logger.SetupLogging(&logger.Config{Debug: true}); err != nil { - return nil - } - l := new(testutil.Logger) - log.Logger = NewLogger(l).WithGroup("tcg.sdk") - return l - }() - i := Groundwork{ - Log: testLogger, + Log: new(testutil.Logger), Server: server.URL, AgentID: defaultTestAgentID, DefaultHost: defaultHost, @@ -137,6 +121,8 @@ func TestWriteWithFields(t *testing.T) { }, } + require.NoError(t, logger.SetupLogging(&logger.Config{Debug: true})) + log.Logger = NewLogger(i.Log).WithGroup("tcg.sdk") err := i.Write([]telegraf.Metric{floatMetric}) require.NoError(t, err) @@ -189,17 +175,8 @@ func TestWriteWithTags(t *testing.T) { require.NoError(t, err) })) - testLogger := func() telegraf.Logger { - if err := logger.SetupLogging(&logger.Config{Debug: true}); err != nil { - return nil - } - l := new(testutil.Logger) - log.Logger = NewLogger(l).WithGroup("tcg.sdk") - return l - }() - i := Groundwork{ - Log: testLogger, + Log: new(testutil.Logger), Server: server.URL, AgentID: defaultTestAgentID, DefaultHost: defaultHost, @@ -215,6 +192,8 @@ func TestWriteWithTags(t *testing.T) { }, } + require.NoError(t, logger.SetupLogging(&logger.Config{Debug: true})) + log.Logger = NewLogger(i.Log).WithGroup("tcg.sdk") err := i.Write([]telegraf.Metric{floatMetric}) require.NoError(t, err) diff --git a/plugins/outputs/groundwork/log_adapter.go b/plugins/outputs/groundwork/log_adapter.go index a0331c723328c..678c73a64c8fa 100644 --- a/plugins/outputs/groundwork/log_adapter.go +++ b/plugins/outputs/groundwork/log_adapter.go @@ -40,13 +40,8 @@ func (h *TlgHandler) Handle(_ context.Context, r slog.Record) error { slog.String("logger", strings.Join(h.groups, ",")), slog.String("message", r.Message), ) - for _, attr := range h.attrs { - if v, ok := attr.Value.Any().(json.RawMessage); ok { - attrs = append(attrs, slog.String(attr.Key, string(v))) - continue - } - attrs = append(attrs, attr) - } + attrs = append(attrs, h.attrs...) + r.Attrs(func(attr slog.Attr) bool { if v, ok := attr.Value.Any().(json.RawMessage); ok { attrs = append(attrs, slog.String(attr.Key, string(v))) @@ -70,7 +65,15 @@ func (h *TlgHandler) WithAttrs(attrs []slog.Attr) slog.Handler { nested := &TlgHandler{Log: h.Log} nested.attrs = append(nested.attrs, h.attrs...) nested.groups = append(nested.groups, h.groups...) - nested.attrs = append(nested.attrs, attrs...) + + for _, attr := range attrs { + if v, ok := attr.Value.Any().(json.RawMessage); ok { + nested.attrs = append(nested.attrs, slog.String(attr.Key, string(v))) + continue + } + nested.attrs = append(nested.attrs, attr) + } + return nested }