[gogf/gf]关于异常捕获问题无法打印详细堆栈信息

2024-07-09 860 views
9

描述: 在控制器里面随便panic, 在中间件捕获错误打印到日志, 发现没有详细的堆栈信息, 只有报错信息, 堆栈信息希望能定位到文件和行

代码: if err := r.GetError(); err != nil { g.Log("exception").Error(err) // 记录到自定义错误日志文件 r.Response.ClearBuffer() //返回固定的友好信息 response.JsonExit(r, 500, "服务器居然开小差了,请稍后再试吧!") } 如果复现不了问题, 可以在群里搜 "狂奔的小白兔" 联系我看看. 随时在线

回答

9

输出 gerror.Stack(r.GetError())即可.

4

我按你说的试了, 并没有打印出panic所在的文件和行数, 仅仅只打印出panic的内容

5

image

6

请问你这个是在控制器用gerror创建的错误还是panic抛出错误的, 我这边是这样生成的.

8

2021-05-27 21:56:39.385 500 "GET http localhost:8399 /test HTTP/1.1" 0.004, 127.0.0.1, "", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0" Stack:

  1. test
2

panic.如果是errors.New需要自己手动捕获.