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的更多相关文章

  1. 网上都没有提到的教程:python捕获异常后,怎么输出错误文件和行号

    1.假设输出不存在的变量 a try: print(a) except NameError as e: print('发生错误的文件:', e.__traceback__.tb_frame.f_glo ...

  2. Android如何调用第三方SO库

    问题描述:Android如何调用第三方SO库:已知条件:SO库为Android版本连接库(*.so文件),并提供了详细的接口说明:已了解解决方案:1.将SO文件直接放到libs/armeabi下,然后 ...

  3. Android如何调用第三方SO库(转)

    源:Android如何调用第三方SO库 问题描述:Android如何调用第三方SO库:已知条件:SO库为Android版本连接库(*.so文件),并提供了详细的接口说明:已了解解决方案:1.将SO文件 ...

  4. 上传文件到 Sharepoint 的文档库中和下载 Sharepoint 的文档库的文件到客户端

    文件操作应用场景: 如果你的.NET项目是运行在SharePoint服务器上的,你可以直接使用SharePoint服务器端对象模型,用SPFileCollection.Add方法 http://msd ...

  5. MyEclipse导入Maven项目pom文件第一行报错,运行Tomcat报Log4j错误--解决方法

    问题描述: 前一段时间电脑第一次导入Maven项目,又是pom文件错,改好后又是运行Tomcat报Log4j错误,一直倒腾了近一个月程序才成功跑起来,太不容易. 也上网查了很长时间,没一个方法能解决我 ...

  6. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件

    小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...

  7. 更新新网卡驱动,修复win7雷凌网卡Ralink RT3290在电脑睡眠时和启动网卡时出现蓝屏netr28x.sys驱动文件错误

    更新新网卡驱动,修复win7雷凌网卡Ralink RT3290在电脑睡眠时和启动网卡时出现蓝屏netr28x.sys驱动文件错误 我的本本是win7,雷凌网卡Ralink RT3290   802.1 ...

  8. VS2012 编译程序时报无法载入PDB文件错误解决方式

    VS2012 编译程序时报无法载入PDB文件错误解决方式 "ConsoleApplication1.exe"(Win32): 已载入"C:\Users\hp\Docume ...

  9. IIS加载JSON文件 错误 404

    问题描述 在发布项目的时候,有一些文件是json文件,在网页中进行加载,但是在IIS7发布的时候,json文件居然是404,无法找到,在URL上输入地址也一样. 错误原因 IIS内部机制,不支持直接访 ...

  10. UnsupportedClassVersionError : 不支持的类版本错误

    UnsupportedClassVersionError : 不支持的类版本错误 listenerStart配置类的应用程序侦听器时出错 listenerStart Error configuring ...

随机推荐

  1. [Go] 注意 go build -o <output> 选项的准确含义

    -o <output> 选项强制执行把构建的可执行文件写入到目标文件或者目标目录中. 如果 output 是已存在的目录,那么所有构建好的文件都将写入到该目录中. 注意:如果目录不存在的话 ...

  2. k8s应用---持久化存储和StorageClass(10)

    一.简介: 在 k8s 中为什么要做持久化存储? 在 k8s 中部署的应用都是以 pod 容器的形式运行的,假如我们部署 MySQL.Redis 等数据库,需要 对这些数据库产生的数据做备份.因为 P ...

  3. 第一章 Jenkins安装配置

    Jenkins官网 # 官网: https://www.jenkins.iohttps://www.jenkins.io/zh/ # docker安装: https://www.jenkins.io/ ...

  4. 五:大数据架构回顾-LambdaPlus架构

    Blink是阿里云在 Apache Flink 基础上深度改进的实时计算平台,Blink旨在将流处理和批处理统一,实现了全新的 Flink SQL 技术栈,在功能上,Blink支持现在标准 SQL 几 ...

  5. 微服务 - 作业调度 · Hangfire集成式 · 仪表盘 · DolphinScheduler分布式 · 定义流程

    系列目录 微服务 - 1.概念 · 应用 · 架构 · 通讯 · 授权 · 跨域 · 限流 微服务 - 2.IdentityServer4认证授权 · 概念认识 · 运行过程 · 实践应用 微服务 - ...

  6. 4、Linux 网络基础

    1.基础命令 hostname:查看或设置当前主机名 route [-n]:查看或设置主机中路由表信息 netstat:查看系统的网络连接状态.路由表.接口统计等信息 常用选项 -a:显示所有-n:以 ...

  7. DNS(6) -- DNS子域实现

    目录 1. DNS子域 1.1 子域授权环境说明 1.2 子域授权实现 1.2.1 主域DNS服务器配置 1.2.2 子域DNS服务器配置 1.3 DNS转发域 1.3.1 DNS转发域概述 1.3. ...

  8. JS基础--JavaScript实例集锦(初学)

    1.子节点childNodes: <!DOCTYPE html> <html> <head> <title>childNodes</title&g ...

  9. 5GC 关键技术之 CUPS(控制与用户面分离)

    目录 文章目录 目录 前文列表 CUPS(控制与用户面分离) 前文列表 <简述移动通信网络的演进之路> <5G 第五代移动通信网络> <5GC 关键技术之 SBA(基于服 ...

  10. java学习之旅(day.06)

    switch多选择结构 多选择结构还有一个实现方式就是switch case switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支 switch(expression ...