1
1
package scw
2
2
3
3
import (
4
+ "math/rand"
4
5
"net/http"
5
6
"net/http/httputil"
6
7
"sync/atomic"
@@ -24,16 +25,19 @@ func (l *requestLoggerTransport) RoundTrip(request *http.Request) (*http.Respons
24
25
// Get anonymized headers
25
26
request .Header = auth .AnonymizeHeaders (request .Header .Clone ())
26
27
28
+ // Add a pseudo random request identifier, this can be used to identify request and response in large logs
29
+ requestIdentifier := rand .Uint32 ()
30
+
27
31
dump , err := httputil .DumpRequestOut (request , true )
28
32
if err != nil {
29
33
logger .Warningf ("cannot dump outgoing request: %s" , err )
30
34
} else {
31
35
var logString string
32
- logString += "\n --------------- Scaleway SDK REQUEST %d : ----- ----------\n "
36
+ logString += "\n ---------- Scaleway SDK REQUEST %d (%x) : ----------\n "
33
37
logString += "%s\n "
34
38
logString += "---------------------------------------------------------"
35
39
36
- logger .Debugf (logString , currentRequestNumber , dump )
40
+ logger .Debugf (logString , currentRequestNumber , requestIdentifier , dump )
37
41
}
38
42
39
43
// Restore original headers before sending the request
@@ -51,11 +55,11 @@ func (l *requestLoggerTransport) RoundTrip(request *http.Request) (*http.Respons
51
55
logger .Warningf ("cannot dump ingoing response: %s" , err )
52
56
} else {
53
57
var logString string
54
- logString += "\n --------------- Scaleway SDK RESPONSE %d : ----- ----------\n "
58
+ logString += "\n ---------- Scaleway SDK RESPONSE %d (%x) : ----------\n "
55
59
logString += "%s\n "
56
60
logString += "----------------------------------------------------------"
57
61
58
- logger .Debugf (logString , currentRequestNumber , dump )
62
+ logger .Debugf (logString , currentRequestNumber , requestIdentifier , dump )
59
63
}
60
64
61
65
return response , requestError
0 commit comments