0
私は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})
})
しかし、それはロールバーにエラーをログに記録されていません。
これは面白そうです。しかし、この関数の最後の呼び出しである 'Next()'は使用しないでください。 – Guilherme
簡単な言葉では、Next()は処理のチェーン内の次のハンドラを呼び出します(最後はリクエストのハンドラになります)。彼らは連鎖と呼ばれましたが、私はむしろ連鎖よりもむしろロシアの人形のように考えることを提案したいと思います。 Next()コールをファームウェアの最後に移動すると、ハンドラが呼び出される前にすべての測定とロギングが行われます。 – Seva
もう1つの例は、github.com/iris-contrib/middleware/loggerです。 Serve()メソッドを見てください。 – Seva