mirror of
https://github.com/kemko/nomad.git
synced 2026-01-07 10:55:42 +03:00
Merge pull request #7785 from hashicorp/b-http-fail-log-level
http: adjust log level for request failure
This commit is contained in:
@@ -467,7 +467,11 @@ func (s *HTTPServer) wrap(handler func(resp http.ResponseWriter, req *http.Reque
|
||||
|
||||
resp.WriteHeader(code)
|
||||
resp.Write([]byte(errMsg))
|
||||
s.logger.Error("request failed", "method", req.Method, "path", reqURL, "error", err, "code", code)
|
||||
if isAPIClientError(code) {
|
||||
s.logger.Debug("request failed", "method", req.Method, "path", reqURL, "error", err, "code", code)
|
||||
} else {
|
||||
s.logger.Error("request failed", "method", req.Method, "path", reqURL, "error", err, "code", code)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -521,7 +525,11 @@ func (s *HTTPServer) wrapNonJSON(handler func(resp http.ResponseWriter, req *htt
|
||||
code, errMsg := errCodeFromHandler(err)
|
||||
resp.WriteHeader(code)
|
||||
resp.Write([]byte(errMsg))
|
||||
s.logger.Error("request failed", "method", req.Method, "path", reqURL, "error", err, "code", code)
|
||||
if isAPIClientError(code) {
|
||||
s.logger.Debug("request failed", "method", req.Method, "path", reqURL, "error", err, "code", code)
|
||||
} else {
|
||||
s.logger.Error("request failed", "method", req.Method, "path", reqURL, "error", err, "code", code)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -533,6 +541,11 @@ func (s *HTTPServer) wrapNonJSON(handler func(resp http.ResponseWriter, req *htt
|
||||
return f
|
||||
}
|
||||
|
||||
// isAPIClientError returns true if the passed http code represents a client error
|
||||
func isAPIClientError(code int) bool {
|
||||
return 400 <= code && code <= 499
|
||||
}
|
||||
|
||||
// decodeBody is used to decode a JSON request body
|
||||
func decodeBody(req *http.Request, out interface{}) error {
|
||||
dec := json.NewDecoder(req.Body)
|
||||
|
||||
@@ -1082,6 +1082,18 @@ func TestHTTPServer_Limits_OK(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func Test_IsAPIClientError(t *testing.T) {
|
||||
trueCases := []int{400, 403, 404, 499}
|
||||
for _, c := range trueCases {
|
||||
require.Truef(t, isAPIClientError(c), "code: %v", c)
|
||||
}
|
||||
|
||||
falseCases := []int{100, 300, 500, 501, 505}
|
||||
for _, c := range falseCases {
|
||||
require.Falsef(t, isAPIClientError(c), "code: %v", c)
|
||||
}
|
||||
}
|
||||
|
||||
func httpTest(t testing.TB, cb func(c *Config), f func(srv *TestAgent)) {
|
||||
s := makeHTTPServer(t, cb)
|
||||
defer s.Shutdown()
|
||||
|
||||
Reference in New Issue
Block a user