mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
client-go: Truncate body based on Verbosity level
This commit is contained in:
parent
5d995e3f7b
commit
b4304f8e79
@ -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)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user