支持TraceID、错误文件、错误行的第三方golang库:gerror
Gerr库简介
Golang第三方库
官方仓库:https://github.com/GuoFlight/gerror
特点:
- 兼容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:
错误
京城郭少
支持TraceID、错误文件、错误行的第三方golang库:gerror的更多相关文章
- 网上都没有提到的教程:python捕获异常后,怎么输出错误文件和行号
1.假设输出不存在的变量 a try: print(a) except NameError as e: print('发生错误的文件:', e.__traceback__.tb_frame.f_glo ...
- Android如何调用第三方SO库
问题描述:Android如何调用第三方SO库:已知条件:SO库为Android版本连接库(*.so文件),并提供了详细的接口说明:已了解解决方案:1.将SO文件直接放到libs/armeabi下,然后 ...
- Android如何调用第三方SO库(转)
源:Android如何调用第三方SO库 问题描述:Android如何调用第三方SO库:已知条件:SO库为Android版本连接库(*.so文件),并提供了详细的接口说明:已了解解决方案:1.将SO文件 ...
- 上传文件到 Sharepoint 的文档库中和下载 Sharepoint 的文档库的文件到客户端
文件操作应用场景: 如果你的.NET项目是运行在SharePoint服务器上的,你可以直接使用SharePoint服务器端对象模型,用SPFileCollection.Add方法 http://msd ...
- MyEclipse导入Maven项目pom文件第一行报错,运行Tomcat报Log4j错误--解决方法
问题描述: 前一段时间电脑第一次导入Maven项目,又是pom文件错,改好后又是运行Tomcat报Log4j错误,一直倒腾了近一个月程序才成功跑起来,太不容易. 也上网查了很长时间,没一个方法能解决我 ...
- 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...
- 更新新网卡驱动,修复win7雷凌网卡Ralink RT3290在电脑睡眠时和启动网卡时出现蓝屏netr28x.sys驱动文件错误
更新新网卡驱动,修复win7雷凌网卡Ralink RT3290在电脑睡眠时和启动网卡时出现蓝屏netr28x.sys驱动文件错误 我的本本是win7,雷凌网卡Ralink RT3290 802.1 ...
- VS2012 编译程序时报无法载入PDB文件错误解决方式
VS2012 编译程序时报无法载入PDB文件错误解决方式 "ConsoleApplication1.exe"(Win32): 已载入"C:\Users\hp\Docume ...
- IIS加载JSON文件 错误 404
问题描述 在发布项目的时候,有一些文件是json文件,在网页中进行加载,但是在IIS7发布的时候,json文件居然是404,无法找到,在URL上输入地址也一样. 错误原因 IIS内部机制,不支持直接访 ...
- UnsupportedClassVersionError : 不支持的类版本错误
UnsupportedClassVersionError : 不支持的类版本错误 listenerStart配置类的应用程序侦听器时出错 listenerStart Error configuring ...
随机推荐
- dotnet 在 UOS 国产系统上安装 dotnet sdk 的方法
本文告诉大家如何在 UOS 国产系统上安装 dotnet sdk 的方法 使用的 UOS 是 UOS 20 x64 版本,这个系统版本是基于 debian 10 的,可以使用 debian 10 的方 ...
- Django之路由层、视图层、模板层介绍
一.Django请求生命周期 1.路由层urls.py Django 1.11版本 URLConf官方文档 1.1 urls.py配置基本格式 from django.conf.urls import ...
- 服务端向客户端发送消息Server-Sent Events
今天听说了服务端向客户端发消息的一种方式:Server-Sent Events SSE使用的是HTTP协议,本质上是服务端向客户端发送流式数据. HTTP不支持服务端向客户端发送请求,但是如果客户端向 ...
- Java 集合类 List 的那些坑
现在的一些高级编程语言都会提供各种开箱即用的数据结构的实现,像 Java 编程语言的集合框架中就提供了各种实现,集合类包含 Map 和 Collection 两个大类,其中 Collection 下面 ...
- 【图形数据集】CIFAR-10 dataset数据集
文献引用:https://www.cs.toronto.edu/~kriz/cifar.html The CIFAR-10 dataset The CIFAR-10 dataset consists ...
- golang写日志函数
package common import ( "bufio" "fmt" "os" "time" ) /*自定义日志文 ...
- 数据转换3-航拍的osgb格式数据转成3dtile格式
选择的是包含所有 osgb 文件夹的 Data 文件 文件添加成功之后,空间参考,零点坐标等会根据文件自动生成,需要更改点击设置选择即可 存储类型:选择"散列",如果没有注意到,C ...
- js中关于return和if条件处理
好玩的 // if (true) { // return // } // // 不会打印 // console.log('1') // if (false) { // return // } // / ...
- C语言:如何删除在可视化网页中未可见的内容(网页txt)
我这个代码仅仅限制于在chrome浏览器中下载china daliy的网页中实现删除可视化内容,因为每个网页的超链接或者文本主内容分布不一样,但是学会了删除一个网页类型的不可视化内容之后,修改其他网页 ...
- 移动通信网络中的 GTP 协议
目录 文章目录 目录 GTP GTP-C 协议(GTP 控制面) GTP-U 协议(GTP 用户面) GTP' 协议(计费传输) GTPv2 Header GTP GTP(GPRS Tunnellin ...