支持TraceID、错误文件、错误行的第三方golang库:gerror

支持TraceID、错误文件、错误行的第三方golang库:gerrorGerr 库简介 Golang 第三方库官方仓库 https github com GuoFlight gerr 特点 兼容 golang 原生 error 库 gerr 会自动生成 traceID 方便排查整条链路的错误

大家好,欢迎来到IT知识分享网。

Gerr库简介

特点:

  • 兼容golang原生error库
  • gerror会自动生成traceID,方便排查整条链路的错误。
  • gerror会自动获取错误发生的文件名+函数名+行号,方便问题的定位。

安装

go get github.com/GuoFlight/gerror 

Demo

详见官方Demo:https://github.com/GuoFlight/gerror/tree/main/example

package main import ( "errors" "fmt" "github.com/GuoFlight/gerror" "log" ) func PrintLog(err *gerror.Gerr) *gerror.Gerr { 
    log.Println(err.Error()) return err } func DoSomething() *gerror.Gerr { 
    err := errors.New("错误") //模拟错误 if err != nil { 
    return gerror.NewErr(err.Error()) } return nil } func main() { 
    //示例1 fmt.Println("示例1:") err1 := gerror.NewErr("错误1") if err1 != nil { 
    fmt.Println(err1.TraceID) fmt.Println(err1.ErrFile) fmt.Println(err1.ErrFunc) fmt.Println(err1.ErrLine) fmt.Println(err1.Error()) } fmt.Println() //示例2 fmt.Println("示例2:") err2 := gerror.NewErr("错误2", err1.TraceID) fmt.Println(err2.TraceID) fmt.Println() //示例3 fmt.Println("示例3:") err3 := PrintLog(gerror.NewErr("错误3", err2.TraceID)) fmt.Println(err3) fmt.Println() //示例4 fmt.Println("示例4:") err4 := DoSomething() fmt.Println(err4) } 

输出:

示例1: 801c0f4d-70ed-434b-a455-3cdae86d4f32 /Users/guofei/Desktop/Workspace/github/gerror/example/main.go main.main 24 错误1 示例2: 801c0f4d-70ed-434b-a455-3cdae86d4f32 示例3: 2022/05/21 01:21:57 错误3 错误3 示例4: 错误 

京城郭少

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/158083.html

(0)
上一篇 2025-01-26 16:10
下一篇 2025-01-26 16:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信