Browse Source

perfect the debug method

wenzuochao 6 years ago
parent
commit
1f5b24e98b
2 changed files with 17 additions and 1 deletions
  1. 10 1
      sdk/client.go
  2. 7 0
      sdk/responses/response.go

+ 10 - 1
sdk/client.go

@@ -18,6 +18,7 @@ import (
 	"fmt"
 	"net/http"
 	"strconv"
+	"strings"
 	"sync"
 
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
@@ -219,7 +220,16 @@ func (client *Client) DoActionWithSigner(request requests.AcsRequest, response r
 	}
 	var httpResponse *http.Response
 	for retryTimes := 0; retryTimes <= client.config.MaxRetryTime; retryTimes++ {
+		debug("> %s %s %s", httpRequest.Method, httpRequest.URL.RequestURI(), httpRequest.Proto)
+		for key, value := range httpRequest.Header {
+			debug("> %s: %v", key, strings.Join(value, ""))
+		}
+		debug(">")
 		httpResponse, err = hookDo(client.httpClient.Do)(httpRequest)
+		debug("< %s %s", httpResponse.Proto, httpResponse.Status)
+		for key, value := range httpResponse.Header {
+			debug("< %s: %v", key, strings.Join(value, ""))
+		}
 		// receive error
 		if err != nil {
 			if !client.config.AutoRetry {
@@ -260,7 +270,6 @@ func buildHttpRequest(request requests.AcsRequest, singer auth.Signer, regionId
 	}
 	requestMethod := request.GetMethod()
 	requestUrl := request.BuildUrl()
-	debug("request URL: %s", requestUrl)
 	body := request.GetBodyReader()
 	httpRequest, err = http.NewRequest(requestMethod, requestUrl, body)
 	if err != nil {

+ 7 - 0
sdk/responses/response.go

@@ -23,6 +23,7 @@ import (
 	"strings"
 
 	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/errors"
+	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/utils"
 )
 
 type AcsResponse interface {
@@ -35,6 +36,11 @@ type AcsResponse interface {
 	parseFromHttpResponse(httpResponse *http.Response) error
 }
 
+var debug utils.Debug
+
+func init() {
+	debug = utils.Init("sdk")
+}
 // Unmarshal object from http response body to target Response
 func Unmarshal(response AcsResponse, httpResponse *http.Response, format string) (err error) {
 	err = response.parseFromHttpResponse(httpResponse)
@@ -109,6 +115,7 @@ func (baseResponse *BaseResponse) parseFromHttpResponse(httpResponse *http.Respo
 	if err != nil {
 		return
 	}
+	debug("< %s", string(body))
 	baseResponse.httpStatus = httpResponse.StatusCode
 	baseResponse.httpHeaders = httpResponse.Header
 	baseResponse.httpContentBytes = body