Skip to content

Commit

Permalink
automatic error reporting, gin.
Browse files Browse the repository at this point in the history
  • Loading branch information
dawkaka committed Mar 24, 2024
1 parent c566af3 commit 28463bd
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions gin.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,13 +46,30 @@ func (c *Client) GinMiddleware(ctx *gin.Context) {
blw := &ginBodyLogWriter{body: bytes.NewBuffer([]byte{}), ResponseWriter: ctx.Writer}
ctx.Writer = blw

ctx.Next()

pathParams := map[string]string{}
for _, param := range ctx.Params {
pathParams[param.Key] = param.Value
}

defer func() {
if err := recover(); err != nil {
ReportError(ctx.Request.Context(), err.(error))
payload := c.buildPayload(GoGinSDKType, start,
ctx.Request, 500,
reqByteBody, blw.body.Bytes(), ctx.Writer.Header().Clone(),
pathParams, ctx.FullPath(),
c.config.RedactHeaders, c.config.RedactRequestBody, c.config.RedactResponseBody,
errorList,
msgID,
nil,
)
c.PublishMessage(ctx, payload)
panic(err)
}
}()

ctx.Next()

payload := c.buildPayload(GoGinSDKType, start,
ctx.Request, ctx.Writer.Status(),
reqByteBody, blw.body.Bytes(), ctx.Writer.Header().Clone(),
Expand Down

0 comments on commit 28463bd

Please sign in to comment.