Skip to content

Commit 97798d6

Browse files
committed
Revert "Merge pull request #73 from cdr/opencensus"
This reverts commit a44f627, reversing changes made to 8f021e1.
1 parent a44f627 commit 97798d6

File tree

9 files changed

+43
-38
lines changed

9 files changed

+43
-38
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ go get cdr.dev/slog
2626
- [Stdlib](https://godoc.org/cdr.dev/slog#Stdlib) log adapter
2727
- Skip caller frames with [slog.Helper](https://godoc.org/cdr.dev/slog#Helper)
2828
- Encodes values as if with `json.Marshal`
29-
- Transparently log [opencensus](https://godoc.org/go.opencensus.io/trace) span's from the passed context
30-
- [Zero dependencies](https://godoc.org/cdr.dev/slog?imports)
29+
- Transparently log [opencensus](https://godoc.org/go.opencensus.io/trace) trace and span IDs
30+
- [Single dependency](https://godoc.org/cdr.dev/slog?imports) on go.opencensus.io
3131
- Log to multiple sinks
3232

3333
## Example

internal/entryhuman/entry.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func c(w io.Writer, attrs ...color.Attribute) *color.Color {
4949
// We also do not indent the fields as go's test does that automatically
5050
// for extra lines in a log so if we did it here, the fields would be indented
5151
// twice in test logs. So the Stderr logger indents all the fields itself.
52-
func Fmt(w io.Writer, ent slog.SinkEntry, sc trace.SpanContext) string {
52+
func Fmt(w io.Writer, ent slog.SinkEntry) string {
5353
var ents string
5454
ts := ent.Time.Format(TimeFormat)
5555
ents += ts + " "
@@ -79,10 +79,10 @@ func Fmt(w io.Writer, ent slog.SinkEntry, sc trace.SpanContext) string {
7979
msg = quote(msg)
8080
ents += msg
8181

82-
if sc != (trace.SpanContext{}) {
82+
if ent.SpanContext != (trace.SpanContext{}) {
8383
ent.Fields = append(slog.M(
84-
slog.F("trace", sc.TraceID),
85-
slog.F("span", sc.SpanID),
84+
slog.F("trace", ent.SpanContext.TraceID),
85+
slog.F("span", ent.SpanContext.SpanID),
8686
), ent.Fields...)
8787
}
8888

internal/entryhuman/entry_test.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ import (
1414

1515
var kt = time.Date(2000, time.February, 5, 4, 4, 4, 4, time.UTC)
1616

17-
func TestFmt(t *testing.T) {
17+
func TestEntry(t *testing.T) {
1818
t.Parallel()
1919

20-
test := func(t *testing.T, in slog.SinkEntry, sc trace.SpanContext, exp string) {
21-
act := entryhuman.Fmt(ioutil.Discard, in, sc)
20+
test := func(t *testing.T, in slog.SinkEntry, exp string) {
21+
act := entryhuman.Fmt(ioutil.Discard, in)
2222
assert.Equal(t, exp, act, "entry")
2323
}
2424

@@ -33,7 +33,7 @@ func TestFmt(t *testing.T) {
3333
File: "myfile",
3434
Line: 100,
3535
Func: "ignored",
36-
}, trace.SpanContext{}, `2000-02-05 04:04:04.000 [DEBUG] <myfile:100> "wowowow\tizi"`)
36+
}, `2000-02-05 04:04:04.000 [DEBUG] <myfile:100> "wowowow\tizi"`)
3737
})
3838

3939
t.Run("multilineMessage", func(t *testing.T) {
@@ -42,7 +42,7 @@ func TestFmt(t *testing.T) {
4242
test(t, slog.SinkEntry{
4343
Message: "line1\nline2",
4444
Level: slog.LevelInfo,
45-
}, trace.SpanContext{}, `0001-01-01 00:00:00.000 [INFO] <.:0> ...
45+
}, `0001-01-01 00:00:00.000 [INFO] <.:0> ...
4646
"msg": line1
4747
line2`)
4848
})
@@ -53,17 +53,18 @@ line2`)
5353
test(t, slog.SinkEntry{
5454
Level: slog.LevelWarn,
5555
LoggerNames: []string{"named", "meow"},
56-
}, trace.SpanContext{}, `0001-01-01 00:00:00.000 [WARN] (named.meow) <.:0> ""`)
56+
}, `0001-01-01 00:00:00.000 [WARN] (named.meow) <.:0> ""`)
5757
})
5858

5959
t.Run("trace", func(t *testing.T) {
6060
t.Parallel()
6161

6262
test(t, slog.SinkEntry{
6363
Level: slog.LevelError,
64-
}, trace.SpanContext{
65-
SpanID: trace.SpanID{0, 1, 2, 3, 4, 5, 6, 7},
66-
TraceID: trace.TraceID{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
64+
SpanContext: trace.SpanContext{
65+
SpanID: trace.SpanID{0, 1, 2, 3, 4, 5, 6, 7},
66+
TraceID: trace.TraceID{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
67+
},
6768
}, `0001-01-01 00:00:00.000 [ERROR] <.:0> "" {"trace": "000102030405060708090a0b0c0d0e0f", "span": "0001020304050607"}`)
6869
})
6970

@@ -75,7 +76,7 @@ line2`)
7576
Fields: slog.M(
7677
slog.F("hey", "hi"),
7778
),
78-
}, trace.SpanContext{})
79+
})
7980
assert.Equal(t, "0001-01-01 00:00:00.000 \x1b[91m[CRITICAL]\x1b[0m\t\x1b[36m<.:0>\x1b[0m\t\"\"\t{\x1b[34m\"hey\"\x1b[0m: \x1b[32m\"hi\"\x1b[0m}", act, "entry")
8081
})
8182
}

slog.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import (
1717
"runtime"
1818
"sync"
1919
"time"
20+
21+
"go.opencensus.io/trace"
2022
)
2123

2224
// Sink is the destination of a Logger.
@@ -145,10 +147,11 @@ func (l Logger) log(ctx context.Context, level Level, msg string, fields Map) {
145147

146148
func (l Logger) entry(ctx context.Context, level Level, msg string, fields Map) SinkEntry {
147149
ent := SinkEntry{
148-
Time: time.Now().UTC(),
149-
Level: level,
150-
Message: msg,
151-
Fields: fieldsFromContext(ctx).append(fields),
150+
Time: time.Now().UTC(),
151+
Level: level,
152+
Message: msg,
153+
Fields: fieldsFromContext(ctx).append(fields),
154+
SpanContext: trace.FromContext(ctx).SpanContext(),
152155
}
153156
ent = ent.fillLoc(l.skip + 3)
154157
return ent
@@ -272,6 +275,8 @@ type SinkEntry struct {
272275
File string
273276
Line int
274277

278+
SpanContext trace.SpanContext
279+
275280
Fields Map
276281
}
277282

slog_test.go

+8-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import (
66
"runtime"
77
"testing"
88

9+
"go.opencensus.io/trace"
10+
911
"cdr.dev/slog"
1012
"cdr.dev/slog/internal/assert"
1113
)
@@ -72,7 +74,7 @@ func TestLogger(t *testing.T) {
7274

7375
File: slogTestFile,
7476
Func: "cdr.dev/slog_test.TestLogger.func2",
75-
Line: 64,
77+
Line: 66,
7678

7779
Fields: slog.M(
7880
slog.F("ctx", 1024),
@@ -88,7 +90,8 @@ func TestLogger(t *testing.T) {
8890
l = l.Named("hello")
8991
l = l.Named("hello2")
9092

91-
ctx := slog.With(bg, slog.F("ctx", io.EOF))
93+
ctx, span := trace.StartSpan(bg, "trace")
94+
ctx = slog.With(ctx, slog.F("ctx", io.EOF))
9295
l = l.With(slog.F("with", 2))
9396

9497
l.Info(ctx, "meow", slog.F("hi", "xd"))
@@ -104,7 +107,9 @@ func TestLogger(t *testing.T) {
104107

105108
File: slogTestFile,
106109
Func: "cdr.dev/slog_test.TestLogger.func3",
107-
Line: 94,
110+
Line: 97,
111+
112+
SpanContext: span.SpanContext(),
108113

109114
Fields: slog.M(
110115
slog.F("with", 2),

sloggers/sloghuman/sloghuman.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import (
77
"io"
88
"strings"
99

10-
"go.opencensus.io/trace"
11-
1210
"cdr.dev/slog"
1311
"cdr.dev/slog/internal/entryhuman"
1412
"cdr.dev/slog/internal/syncwriter"
@@ -32,7 +30,7 @@ type humanSink struct {
3230
}
3331

3432
func (s humanSink) LogEntry(ctx context.Context, ent slog.SinkEntry) {
35-
str := entryhuman.Fmt(s.w2, ent, trace.FromContext(ctx).SpanContext())
33+
str := entryhuman.Fmt(s.w2, ent)
3634
lines := strings.Split(str, "\n")
3735

3836
// We need to add 4 spaces before every field line for readability.

sloggers/slogjson/slogjson.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,10 @@ func (s jsonSink) LogEntry(ctx context.Context, ent slog.SinkEntry) {
5757
m = append(m, slog.F("logger_names", ent.LoggerNames))
5858
}
5959

60-
sc := trace.FromContext(ctx).SpanContext()
61-
if sc != (trace.SpanContext{}) {
60+
if ent.SpanContext != (trace.SpanContext{}) {
6261
m = append(m,
63-
slog.F("trace", sc.TraceID),
64-
slog.F("span", sc.SpanID),
62+
slog.F("trace", ent.SpanContext.TraceID),
63+
slog.F("span", ent.SpanContext.SpanID),
6564
)
6665
}
6766

sloggers/slogstackdriver/slogstackdriver.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,11 @@ func (s stackdriverSink) LogEntry(ctx context.Context, ent slog.SinkEntry) {
5454
}))
5555
}
5656

57-
sc := trace.FromContext(ctx).SpanContext()
58-
if sc != (trace.SpanContext{}) {
57+
if ent.SpanContext != (trace.SpanContext{}) {
5958
e = append(e,
60-
slog.F("logging.googleapis.com/trace", s.traceField(sc.TraceID)),
61-
slog.F("logging.googleapis.com/spanId", sc.SpanID.String()),
62-
slog.F("logging.googleapis.com/trace_sampled", sc.IsSampled()),
59+
slog.F("logging.googleapis.com/trace", s.traceField(ent.SpanContext.TraceID)),
60+
slog.F("logging.googleapis.com/spanId", ent.SpanContext.SpanID.String()),
61+
slog.F("logging.googleapis.com/trace_sampled", ent.SpanContext.IsSampled()),
6362
)
6463
}
6564

sloggers/slogtest/t.go

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"os"
1212
"testing"
1313

14-
"go.opencensus.io/trace"
15-
1614
"cdr.dev/slog"
1715
"cdr.dev/slog/internal/entryhuman"
1816
"cdr.dev/slog/sloggers/sloghuman"
@@ -51,7 +49,7 @@ type testSink struct {
5149

5250
func (ts testSink) LogEntry(ctx context.Context, ent slog.SinkEntry) {
5351
// The testing package logs to stdout and not stderr.
54-
s := entryhuman.Fmt(os.Stdout, ent, trace.FromContext(ctx).SpanContext())
52+
s := entryhuman.Fmt(os.Stdout, ent)
5553

5654
switch ent.Level {
5755
case slog.LevelDebug, slog.LevelInfo, slog.LevelWarn:

0 commit comments

Comments
 (0)