大家好,欢迎来到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