打印堆棧信息
- 必須設置
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
- 返回error時必須使用這個包
github.com/pkg/errors
- 采用Err方法
zerolog.Error().Err(err)
- 使用
zerolog.Trace().Stack()
package main
import (
"bytes"
"fmt"
"github.com/pkg/errors"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
func main() {
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
out := &bytes.Buffer{}
log := zerolog.New(out)
err := errors.Wrap(errors.New("error message"), "from error")
log.Trace().Stack().Err(err).Msg("")
//log.Trace().Stack().Err(err).Send()
fmt.Println(out.String())
// {"level":"trace","stack":[{"func":"main","line":"17","source":"main.go"},{"func"
//:"main","line":"203","source":"proc.go"},{"func":"goexit","line":"1357","source"
//:"asm_amd64.s"}],"error":"from error: error message"}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。