Skip to content

Commit 728ce14

Browse files
committed
chore: improve log
1 parent bef890b commit 728ce14

File tree

4 files changed

+15
-46
lines changed

4 files changed

+15
-46
lines changed

internal/kslog/slog.go

-15
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,13 @@ package kslog
22

33
import (
44
"bytes"
5-
"context"
65
"encoding/json"
76
"log/slog"
87
"strings"
98

109
"github.com/samber/lo"
11-
"go.opentelemetry.io/otel/trace"
1210
)
1311

14-
// LogWithContext returns a logger with trace information.
15-
func LogWithContext(ctx context.Context, logger *slog.Logger) *slog.Logger {
16-
s := trace.SpanContextFromContext(ctx)
17-
if s.IsValid() {
18-
logger = logger.With(
19-
slog.String("span_id", s.SpanID().String()),
20-
slog.String("trace_id", s.TraceID().String()),
21-
)
22-
}
23-
24-
return logger
25-
}
26-
2712
// NewTestLogger returns a new test logger.
2813
func NewTestLogger() (*slog.Logger, *observer) {
2914
observer := &observer{

kod.go

+10-9
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import (
2626

2727
"github.com/go-kod/kod/interceptor"
2828
"github.com/go-kod/kod/internal/hooks"
29-
"github.com/go-kod/kod/internal/kslog"
3029
"github.com/go-kod/kod/internal/registry"
3130
"github.com/go-kod/kod/internal/signals"
3231
)
@@ -46,7 +45,16 @@ type Implements[T any] struct {
4645

4746
// L returns the associated logger.
4847
func (i *Implements[T]) L(ctx context.Context) *slog.Logger {
49-
return kslog.LogWithContext(ctx, i.log)
48+
s := trace.SpanContextFromContext(ctx)
49+
if s.IsValid() {
50+
return slog.Default().With(
51+
slog.String("component", i.name),
52+
slog.String("span_id", s.SpanID().String()),
53+
slog.String("trace_id", s.TraceID().String()),
54+
)
55+
}
56+
57+
return slog.Default().With(slog.String("component", i.name))
5058
}
5159

5260
// Tracer return the associated tracer.
@@ -59,13 +67,6 @@ func (i *Implements[T]) Meter(opts ...metric.MeterOption) metric.Meter {
5967
return otel.Meter(i.name, opts...)
6068
}
6169

62-
// setLogger sets the logger for the component.
63-
// nolint
64-
func (i *Implements[T]) setLogger(name string, log *slog.Logger) {
65-
i.name = name
66-
i.log = log.With(slog.String("component", name))
67-
}
68-
6970
// implements is a marker method to assert implementation of an interface.
7071
// nolint
7172
func (Implements[T]) implements(T) {}

registry.go

+5-18
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"log/slog"
87
"reflect"
98

109
"github.com/dominikbraun/graph"
@@ -109,10 +108,10 @@ func (k *Kod) get(ctx context.Context, reg *Registration) (any, error) {
109108
}
110109
}
111110

112-
// Fill logger.
113-
if err := fillLog(reg.Name, obj, slog.Default()); err != nil {
114-
return nil, err
115-
}
111+
// // Fill logger.
112+
// if err := fillLog(reg.Name, obj, slog.Default()); err != nil {
113+
// return nil, err
114+
// }
116115

117116
// Fill refs.
118117
if err := fillRefs(obj, k.lazyInitComponents,
@@ -133,9 +132,7 @@ func (k *Kod) get(ctx context.Context, reg *Registration) (any, error) {
133132

134133
// Call Shutdown if available.
135134
if i, ok := obj.(interface{ Shutdown(context.Context) error }); ok {
136-
k.hooker.Add(hooks.HookFunc{Name: reg.Name, Fn: func(ctx context.Context) error {
137-
return i.Shutdown(ctx)
138-
}})
135+
k.hooker.Add(hooks.HookFunc{Name: reg.Name, Fn: i.Shutdown})
139136
}
140137

141138
// Cache the component.
@@ -144,16 +141,6 @@ func (k *Kod) get(ctx context.Context, reg *Registration) (any, error) {
144141
return obj, nil
145142
}
146143

147-
func fillLog(name string, obj any, log *slog.Logger) error {
148-
x, ok := obj.(interface{ setLogger(string, *slog.Logger) })
149-
if !ok {
150-
return fmt.Errorf("fillLog: %T does not implement kod.Implements", obj)
151-
}
152-
153-
x.setLogger(name, log)
154-
return nil
155-
}
156-
157144
func fillRefs(impl any, lazyInit map[reflect.Type]bool, get func(reflect.Type) componentGetter) error {
158145
p := reflect.ValueOf(impl)
159146
if p.Kind() != reflect.Pointer {

registry_test.go

-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ import (
1212
)
1313

1414
func TestFill(t *testing.T) {
15-
t.Run("case 1", func(t *testing.T) {
16-
assert.NotNil(t, fillLog("", nil, nil))
17-
})
18-
1915
t.Run("case 2", func(t *testing.T) {
2016
assert.NotNil(t, fillRefs(nil, nil, nil))
2117
})

0 commit comments

Comments
 (0)