gpt4 book ai didi

go - Iris - 如何记录错误/异常?

转载 作者:数据小太阳 更新时间:2023-10-29 03:14:55 27 4
gpt4 key购买 nike

我正在使用 Iris 测试 Go 应用程序.我想将每个错误或异常记录到我的 Rollbar 帐户。

例如,如果端点响应时间太长并且超时,我想记录它。我怎样才能捕获这样的错误?

更新

我在文档中找到了 OnError 方法,我想我可以像这样使用它:

iris.OnError(iris.StatusServiceUnavailable, func(c *iris.Context) {
c.Write("503")
params := string(c.RequestCtx.Request.Body())
rollbar.Error("error", errors.New("503 Service Unavailable"), &rollbar.Field{Name: "request_body", Data: params})
})

但它不会将错误记录到 Rollbar。

最佳答案

您需要自己编写 iris middleware .

应该看起来像这样:

func irisMiddlewareFunc(ctx *iris.Context) {
startedAt := time.Now()
ctx.Next()
timeTaken := time.Since(startedAt)

// now check time taken and log as required
if timeTaken.Seconds() > 2 {
fmt.Println("Taken too long")
}
}

你这样使用它:

    iris.UseFunc(irisMiddlewareFunc)

如果您还需要处理 panic ,只需像通常处理 panic 那样使用 recover() 即可。参见 github.com/iris-contrib/middleware/recovery举个例子。

关于go - Iris - 如何记录错误/异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38963317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com