Skip to content

Commit 3fa4f58

Browse files
committed
spanlogger: Remove global logger usages
Signed-off-by: Arve Knudsen <[email protected]>
1 parent 460bf06 commit 3fa4f58

File tree

3 files changed

+23
-34
lines changed

3 files changed

+23
-34
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ require (
1717
github.com/hashicorp/go-sockaddr v1.0.2
1818
github.com/hashicorp/memberlist v0.2.3
1919
github.com/opentracing-contrib/go-grpc v0.0.0-20210225150812-73cb765af46e // indirect
20+
github.com/opentracing/opentracing-go v1.2.0
2021
github.com/pkg/errors v0.9.1
2122
github.com/prometheus/client_golang v1.11.0
2223
github.com/prometheus/common v0.26.0

spanlogger/spanlogger.go

Lines changed: 14 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ import (
99
"github.com/opentracing/opentracing-go/ext"
1010
otlog "github.com/opentracing/opentracing-go/log"
1111

12-
"github.com/cortexproject/cortex/pkg/tenant"
13-
util_log "github.com/cortexproject/cortex/pkg/util/log"
12+
"github.com/grafana/dskit/dslog"
13+
"github.com/grafana/dskit/tenant"
1414
)
1515

1616
type loggerCtxMarker struct{}
@@ -29,44 +29,31 @@ type SpanLogger struct {
2929
opentracing.Span
3030
}
3131

32-
// New makes a new SpanLogger, where logs will be sent to the global logger.
33-
func New(ctx context.Context, method string, kvps ...interface{}) (*SpanLogger, context.Context) {
34-
return NewWithLogger(ctx, util_log.Logger, method, kvps...)
35-
}
36-
37-
// NewWithLogger makes a new SpanLogger with a custom log.Logger to send logs
32+
// New makes a new SpanLogger with a custom log.Logger to send logs
3833
// to. The provided context will have the logger attached to it and can be
3934
// retrieved with FromContext or FromContextWithFallback.
40-
func NewWithLogger(ctx context.Context, l log.Logger, method string, kvps ...interface{}) (*SpanLogger, context.Context) {
35+
func New(ctx context.Context, logger log.Logger, method string, kvps ...interface{}) (*SpanLogger, context.Context) {
4136
span, ctx := opentracing.StartSpanFromContext(ctx, method)
42-
if ids, _ := tenant.TenantIDs(ctx); len(ids) > 0 {
37+
if ids, _ := tenant.IDs(ctx); len(ids) > 0 {
4338
span.SetTag(TenantIDTagName, ids)
4439
}
45-
logger := &SpanLogger{
46-
Logger: log.With(util_log.WithContext(ctx, l), "method", method),
40+
l := &SpanLogger{
41+
Logger: log.With(dslog.WithContext(ctx, logger), "method", method),
4742
Span: span,
4843
}
4944
if len(kvps) > 0 {
50-
level.Debug(logger).Log(kvps...)
45+
level.Debug(l).Log(kvps...)
5146
}
5247

5348
ctx = context.WithValue(ctx, loggerCtxKey, l)
54-
return logger, ctx
55-
}
56-
57-
// FromContext returns a span logger using the current parent span. If there
58-
// is no parent span, the SpanLogger will only log to the logger
59-
// in the context. If the context doesn't have a logger, the global logger
60-
// is used.
61-
func FromContext(ctx context.Context) *SpanLogger {
62-
return FromContextWithFallback(ctx, util_log.Logger)
49+
return l, ctx
6350
}
6451

65-
// FromContextWithFallback returns a span logger using the current parent span.
66-
// IF there is no parent span, the SpanLogger will only log to the logger
52+
// FromContext returns a span logger using the current parent span.
53+
// If there is no parent span, the SpanLogger will only log to the logger
6754
// within the context. If the context doesn't have a logger, the fallback
6855
// logger is used.
69-
func FromContextWithFallback(ctx context.Context, fallback log.Logger) *SpanLogger {
56+
func FromContext(ctx context.Context, fallback log.Logger) *SpanLogger {
7057
logger, ok := ctx.Value(loggerCtxKey).(log.Logger)
7158
if !ok {
7259
logger = fallback
@@ -76,7 +63,7 @@ func FromContextWithFallback(ctx context.Context, fallback log.Logger) *SpanLogg
7663
sp = defaultNoopSpan
7764
}
7865
return &SpanLogger{
79-
Logger: util_log.WithContext(ctx, logger),
66+
Logger: dslog.WithContext(ctx, logger),
8067
Span: sp,
8168
}
8269
}
@@ -93,7 +80,7 @@ func (s *SpanLogger) Log(kvps ...interface{}) error {
9380
return nil
9481
}
9582

96-
// Error sets error flag and logs the error on the span, if non-nil. Returns the err passed in.
83+
// Error sets error flag and logs the error on the span, if non-nil. Returns the err passed in.
9784
func (s *SpanLogger) Error(err error) error {
9885
if err == nil {
9986
return nil

spanlogger/spanlogger_test.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@ import (
1313
)
1414

1515
func TestSpanLogger_Log(t *testing.T) {
16-
span, ctx := New(context.Background(), "test", "bar")
16+
logger := log.NewNopLogger()
17+
span, ctx := New(context.Background(), logger, "test", "bar")
1718
_ = span.Log("foo")
18-
newSpan := FromContext(ctx)
19+
newSpan := FromContext(ctx, logger)
1920
require.Equal(t, span.Span, newSpan.Span)
2021
_ = newSpan.Log("bar")
21-
noSpan := FromContext(context.Background())
22+
noSpan := FromContext(context.Background(), logger)
2223
_ = noSpan.Log("foo")
2324
require.Error(t, noSpan.Error(errors.New("err")))
2425
require.NoError(t, noSpan.Error(nil))
@@ -30,13 +31,13 @@ func TestSpanLogger_CustomLogger(t *testing.T) {
3031
logged = append(logged, keyvals)
3132
return nil
3233
}
33-
span, ctx := NewWithLogger(context.Background(), logger, "test")
34+
span, ctx := New(context.Background(), logger, "test")
3435
_ = span.Log("msg", "original spanlogger")
3536

36-
span = FromContextWithFallback(ctx, log.NewNopLogger())
37+
span = FromContext(ctx, log.NewNopLogger())
3738
_ = span.Log("msg", "restored spanlogger")
3839

39-
span = FromContextWithFallback(context.Background(), logger)
40+
span = FromContext(context.Background(), logger)
4041
_ = span.Log("msg", "fallback spanlogger")
4142

4243
expect := [][]interface{}{
@@ -64,7 +65,7 @@ func createSpan(ctx context.Context) *mocktracer.MockSpan {
6465
mockTracer := mocktracer.New()
6566
opentracing.SetGlobalTracer(mockTracer)
6667

67-
logger, _ := New(ctx, "name")
68+
logger, _ := New(ctx, log.NewNopLogger(), "name")
6869
return logger.Span.(*mocktracer.MockSpan)
6970
}
7071

0 commit comments

Comments
 (0)