5 | 5 |
"time"
|
6 | 6 |
|
7 | 7 |
"github.com/stretchr/testify/assert"
|
|
8 |
"go.uber.org/zap"
|
|
9 |
"go.uber.org/zap/buffer"
|
8 | 10 |
"go.uber.org/zap/zapcore"
|
9 | 11 |
)
|
10 | 12 |
|
|
107 | 109 |
}
|
108 | 110 |
assert.Equal(t, expectedPrefix+expected, enc.buf.String(), "Unexpected encoder output after adding a %s as a second field.", desc)
|
109 | 111 |
}
|
|
112 |
|
|
113 |
func TestEncodeCaller(t *testing.T) {
|
|
114 |
enc := &logfmtEncoder{buf: bufferpool.Get(), EncoderConfig: &zapcore.EncoderConfig{
|
|
115 |
EncodeTime: zapcore.EpochTimeEncoder,
|
|
116 |
EncodeDuration: zapcore.SecondsDurationEncoder,
|
|
117 |
EncodeCaller: zapcore.ShortCallerEncoder,
|
|
118 |
}}
|
|
119 |
|
|
120 |
var buf *buffer.Buffer
|
|
121 |
var err error
|
|
122 |
encodeEntry := func() {
|
|
123 |
buf, err = enc.EncodeEntry(
|
|
124 |
zapcore.Entry{
|
|
125 |
Level: zapcore.DebugLevel,
|
|
126 |
Time: time.Time{},
|
|
127 |
LoggerName: "test",
|
|
128 |
Message: "caller test",
|
|
129 |
Caller: zapcore.EntryCaller{
|
|
130 |
Defined: true,
|
|
131 |
File: "h2g2.go",
|
|
132 |
Line: 42,
|
|
133 |
},
|
|
134 |
},
|
|
135 |
[]zapcore.Field{
|
|
136 |
zap.String("k", "v"),
|
|
137 |
},
|
|
138 |
)
|
|
139 |
}
|
|
140 |
|
|
141 |
encodeEntry()
|
|
142 |
assert.Nil(t, err)
|
|
143 |
assert.Equal(t, "k=v\n", buf.String())
|
|
144 |
|
|
145 |
enc.truncate()
|
|
146 |
enc.EncoderConfig.CallerKey = "caller"
|
|
147 |
encodeEntry()
|
|
148 |
assert.Nil(t, err)
|
|
149 |
assert.Equal(t, "caller=h2g2.go:42 k=v\n", buf.String())
|
|
150 |
}
|
|
151 |
|
|
152 |
func TestEncodeStacktrace(t *testing.T) {
|
|
153 |
enc := &logfmtEncoder{buf: bufferpool.Get(), EncoderConfig: &zapcore.EncoderConfig{
|
|
154 |
EncodeTime: zapcore.EpochTimeEncoder,
|
|
155 |
EncodeDuration: zapcore.SecondsDurationEncoder,
|
|
156 |
}}
|
|
157 |
|
|
158 |
var buf *buffer.Buffer
|
|
159 |
var err error
|
|
160 |
encodeEntry := func() {
|
|
161 |
buf, err = enc.EncodeEntry(
|
|
162 |
zapcore.Entry{
|
|
163 |
Level: zapcore.DebugLevel,
|
|
164 |
Time: time.Time{},
|
|
165 |
LoggerName: "test",
|
|
166 |
Message: "stacktrace test",
|
|
167 |
Stack: `panic: an unexpected error occurred
|
|
168 |
|
|
169 |
goroutine 1 [running]:
|
|
170 |
main.main()
|
|
171 |
/go/src/github.com/jsternberg/myawesomeproject/h2g2.go:4 +0x39
|
|
172 |
`,
|
|
173 |
},
|
|
174 |
[]zapcore.Field{
|
|
175 |
zap.String("k", "v"),
|
|
176 |
},
|
|
177 |
)
|
|
178 |
}
|
|
179 |
|
|
180 |
encodeEntry()
|
|
181 |
assert.Nil(t, err)
|
|
182 |
assert.Equal(t, "k=v\n", buf.String())
|
|
183 |
|
|
184 |
enc.truncate()
|
|
185 |
enc.EncoderConfig.StacktraceKey = "stacktrace"
|
|
186 |
encodeEntry()
|
|
187 |
assert.Nil(t, err)
|
|
188 |
assert.Equal(t, `k=v stacktrace="panic: an unexpected error occurred\n\ngoroutine 1 [running]:\nmain.main()\n\t\t/go/src/github.com/jsternberg/myawesomeproject/h2g2.go:4 +0x39\n"
|
|
189 |
`, buf.String())
|
|
190 |
}
|