in hugegraph-client-go/hgtransport/logger.go [175:250]
func (l *CurlLogger) LogRoundTrip(req *http.Request, res *http.Response, err error, start time.Time, dur time.Duration) error {
var b bytes.Buffer
var query string
qvalues := url.Values{}
for k, v := range req.URL.Query() {
if k == "pretty" {
continue
}
for _, qv := range v {
qvalues.Add(k, qv)
}
}
if len(qvalues) > 0 {
query = qvalues.Encode()
}
b.WriteString(`curl`)
if req.Method == "HEAD" {
b.WriteString(" --head")
} else {
fmt.Fprintf(&b, " -X %s", req.Method)
}
if len(req.Header) > 0 {
for k, vv := range req.Header {
if k == "Authorization" || k == "User-Agent" {
continue
}
v := strings.Join(vv, ",")
b.WriteString(fmt.Sprintf(" -H '%s: %s'", k, v))
}
}
b.WriteString(" 'http://localhost:9200")
b.WriteString(req.URL.Path)
b.WriteString("?pretty")
if query != "" {
fmt.Fprintf(&b, "&%s", query)
}
b.WriteString("'")
if req != nil && req.Body != nil && req.Body != http.NoBody {
var buf bytes.Buffer
buf.ReadFrom(req.Body)
b.Grow(buf.Len())
b.WriteString(" -d \\\n'")
json.Indent(&b, buf.Bytes(), "", " ")
b.WriteString("'")
}
b.WriteRune('\n')
var status string
status = res.Status
fmt.Fprintf(&b, "# => %s [%s] %s\n", start.UTC().Format(time.RFC3339), status, dur.Truncate(time.Millisecond))
if l.ResponseBodyEnabled() && res != nil && res.Body != nil && res.Body != http.NoBody {
var buf bytes.Buffer
buf.ReadFrom(res.Body)
b.Grow(buf.Len())
b.WriteString("# ")
json.Indent(&b, buf.Bytes(), "# ", " ")
}
b.WriteString("\n")
if l.ResponseBodyEnabled() && res != nil && res.Body != nil && res.Body != http.NoBody {
b.WriteString("\n")
}
b.WriteTo(l.Output)
return nil
}