mirror of
https://github.com/kubernetes/client-go.git
synced 2025-09-25 14:42:33 +00:00
client-go: Truncate body based on Verbosity level
Kubernetes-commit: b4304f8e79f8227fc7841ecc7cb80b94cbbd493d
This commit is contained in:
committed by
Kubernetes Publisher
parent
8d1bb259cc
commit
90239c1304
@@ -823,6 +823,23 @@ func (r *Request) transformResponse(resp *http.Response, req *http.Request) Resu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// truncateBody decides if the body should be truncated, based on the glog Verbosity.
|
||||||
|
func truncateBody(body string) string {
|
||||||
|
max := 0
|
||||||
|
switch {
|
||||||
|
case bool(glog.V(9)):
|
||||||
|
max = 10240
|
||||||
|
case bool(glog.V(8)):
|
||||||
|
max = 1024
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(body) <= max {
|
||||||
|
return body
|
||||||
|
}
|
||||||
|
|
||||||
|
return body[:max] + fmt.Sprintf(" [truncated %d chars]", len(body)-max)
|
||||||
|
}
|
||||||
|
|
||||||
// glogBody logs a body output that could be either JSON or protobuf. It explicitly guards against
|
// glogBody logs a body output that could be either JSON or protobuf. It explicitly guards against
|
||||||
// allocating a new string for the body output unless necessary. Uses a simple heuristic to determine
|
// allocating a new string for the body output unless necessary. Uses a simple heuristic to determine
|
||||||
// whether the body is printable.
|
// whether the body is printable.
|
||||||
@@ -831,9 +848,9 @@ func glogBody(prefix string, body []byte) {
|
|||||||
if bytes.IndexFunc(body, func(r rune) bool {
|
if bytes.IndexFunc(body, func(r rune) bool {
|
||||||
return r < 0x0a
|
return r < 0x0a
|
||||||
}) != -1 {
|
}) != -1 {
|
||||||
glog.Infof("%s:\n%s", prefix, hex.Dump(body))
|
glog.Infof("%s:\n%s", prefix, truncateBody(hex.Dump(body)))
|
||||||
} else {
|
} else {
|
||||||
glog.Infof("%s: %s", prefix, string(body))
|
glog.Infof("%s: %s", prefix, truncateBody(string(body)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user