forked from maoueh/zap-pretty
-
Notifications
You must be signed in to change notification settings - Fork 0
/
stacktrace_test.go
47 lines (41 loc) · 9.66 KB
/
stacktrace_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main
import (
"fmt"
"testing"
)
var logLines = []string{
"{\"level\":\"info\",\"ts\":1639635852.9342184,\"caller\":\"zap-pretty/stacktrace_test.go:22\",\"msg\":\"Plain Info Log\"}\n",
"{\"level\":\"info\",\"ts\":1639635852.9344785,\"caller\":\"zap-pretty/stacktrace_test.go:23\",\"msg\":\"Info log with some variables\",\"variable\":0,\"Boolean\":true}\n",
"{\"level\":\"error\",\"ts\":1639635852.9344866,\"caller\":\"zap-pretty/stacktrace_test.go:24\",\"msg\":\"Plain error log\",\"stacktrace\":\"github.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:24\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639635852.9345229,\"caller\":\"zap-pretty/stacktrace_test.go:25\",\"msg\":\"Error log with error\",\"error\":\"Cockroachdb error\",\"errorVerbose\":\"Cockroachdb error\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\n | testing.tRunner\\n | \\t/usr/local/go/src/testing/testing.go:1259\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (2) Cockroachdb error\\nError types: (1) *withstack.withStack (2) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639640259.1539562,\"caller\":\"zap-pretty/stacktrace_test.go:23\",\"msg\":\"Error log\",\"error\":\"Error generated by Newf\",\"errorVerbose\":\"Error generated by Newf\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.depth1_leaf_newf\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:34\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:23\\n | testing.tRunner\\n | \\t/usr/local/go/src/testing/testing.go:1259\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (2) Error generated by Newf\\nError types: (1) *withstack.withStack (2) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:23\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639640259.1546555,\"caller\":\"zap-pretty/stacktrace_test.go:24\",\"msg\":\"Error log\",\"error\":\"Const Error\",\"errorVerbose\":\"Const Error\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.init\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:30\\n | runtime.doInit\\n | \\t/usr/local/go/src/runtime/proc.go:6498\\n | runtime.doInit\\n | \\t/usr/local/go/src/runtime/proc.go:6475\\n | runtime.main\\n | \\t/usr/local/go/src/runtime/proc.go:238\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (2) Const Error\\nError types: (1) *withstack.withStack (2) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:24\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639640259.154698,\"caller\":\"zap-pretty/stacktrace_test.go:25\",\"msg\":\"Wrapped Error log\",\"error\":\"Wrapped message: Error generated by Newf\",\"errorVerbose\":\"Wrapped message: Error generated by Newf\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\n | [...repeated from below...]\\nWraps: (2) Wrapped message\\nWraps: (3) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.depth1_leaf_newf\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:34\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\n | testing.tRunner\\n | \\t/usr/local/go/src/testing/testing.go:1259\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (4) Error generated by Newf\\nError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639640259.1549962,\"caller\":\"zap-pretty/stacktrace_test.go:26\",\"msg\":\"Wrapped Error log\",\"error\":\"Wrapped message: Const Error\",\"errorVerbose\":\"Wrapped message: Const Error\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:26\\n | [...repeated from below...]\\nWraps: (2) Wrapped message\\nWraps: (3) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.init\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:30\\n | runtime.doInit\\n | \\t/usr/local/go/src/runtime/proc.go:6498\\n | runtime.doInit\\n | \\t/usr/local/go/src/runtime/proc.go:6475\\n | runtime.main\\n | \\t/usr/local/go/src/runtime/proc.go:238\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (4) Const Error\\nError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:26\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639733913.5089693,\"caller\":\"zap-pretty/stacktrace_test.go:30\",\"msg\":\"This log message is about some error I've seen\",\"error\":\"I am a wrapped error returned by a function at depth 1: I am a leaf error returned by a function at depth 2\",\"errorVerbose\":\"I am a wrapped error returned by a function at depth 1: I am a leaf error returned by a function at depth 2\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth1\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:34\\n | [...repeated from below...]\\nWraps: (2) I am a wrapped error returned by a function at depth 1\\nWraps: (3) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth2\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:38\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth1\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:34\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth0\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:30\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\n | testing.tRunner\\n | \\t/usr/local/go/src/testing/testing.go:1259\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (4) I am a leaf error returned by a function at depth 2\\nError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.IAmAFunctionAtDepth0\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:30\\ngithub.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:25\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
"{\"level\":\"error\",\"ts\":1639734444.8596725,\"caller\":\"zap-pretty/stacktrace_test.go:31\",\"msg\":\"This log message is about some error I've seen\",\"error\":\"I am a wrapped error returned by a function at depth 1: I am a leaf error returned by a function at depth 2\",\"errorVerbose\":\"I am a wrapped error returned by a function at depth 1: I am a leaf error returned by a function at depth 2\\n(1) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth1\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:36\\n | [...repeated from below...]\\nWraps: (2) I am a wrapped error returned by a function at depth 1\\nWraps: (3) attached stack trace\\n -- stack trace:\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth2\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:40\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth1\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:35\\n | github.com/maoueh/zap-pretty.IAmAFunctionAtDepth0\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:31\\n | github.com/maoueh/zap-pretty.TestStackTrace\\n | \\t/home/sarthak/zap-pretty/stacktrace_test.go:26\\n | testing.tRunner\\n | \\t/usr/local/go/src/testing/testing.go:1259\\n | runtime.goexit\\n | \\t/usr/local/go/src/runtime/asm_amd64.s:1581\\nWraps: (4) I am a leaf error returned by a function at depth 2\\nError types: (1) *withstack.withStack (2) *errutil.withPrefix (3) *withstack.withStack (4) *errutil.leafError\",\"stacktrace\":\"github.com/maoueh/zap-pretty.IAmAFunctionAtDepth0\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:31\\ngithub.com/maoueh/zap-pretty.TestStackTrace\\n\\t/home/sarthak/zap-pretty/stacktrace_test.go:26\\ntesting.tRunner\\n\\t/usr/local/go/src/testing/testing.go:1259\"}\n",
}
type MinifyEnabler struct{}
func (MinifyEnabler) apply(p *processor) {
p.minify = true
}
func TestStackTrace(t *testing.T) {
for i, _ := range logLines {
out := executeProcessorTest(logLines[i : i+1])
fmt.Println(out)
}
//IAmAFunctionAtDepth0()
}
//func IAmAFunctionAtDepth0() {
// logger, _ := zap.NewProduction()
// logger.Error("This log message is about some error I've seen", zap.Error(IAmAFunctionAtDepth1()))
//}
//
//func IAmAFunctionAtDepth1() error {
// err := IAmAFunctionAtDepth2()
// return errors.Wrap(err, "I am a wrapped error returned by a function at depth 1")
//}
//
//func IAmAFunctionAtDepth2() error {
// return errors.Newf("I am a leaf error returned by a function at depth 2")
//}