| 118 | } |
| 119 | |
| 120 | func (c *Client) logResponse(response *http.Response, span opentracing.Span) { |
| 121 | if response.Body == nil || c.responseLogThreshold <= 0 { |
| 122 | return |
| 123 | } |
| 124 | byt, err := ioutil.ReadAll(io.LimitReader(response.Body, int64(c.responseLogThreshold))) |
| 125 | if err != nil { |
| 126 | ext.LogError(span, err) |
| 127 | return |
| 128 | } |
| 129 | if span != nil { |
| 130 | span.LogKV("response", string(byt)) |
| 131 | } |
| 132 | response.Body = readCloser{ |
| 133 | Closer: response.Body, |
| 134 | Reader: io.MultiReader(bytes.NewReader(byt), response.Body), |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | type readCloser struct { |
| 139 | io.Closer |