Bladeren bron

Show stacktrace in daemon logs only if 500 internal error

Signed-off-by: Tibor Vass <tibor@docker.com>
Tibor Vass 8 jaren geleden
bovenliggende
commit
f7d9bb6248
1 gewijzigde bestanden met toevoegingen van 6 en 1 verwijderingen
  1. 6 1
      api/server/server.go

+ 6 - 1
api/server/server.go

@@ -138,7 +138,12 @@ func (s *Server) makeHTTPHandler(handler httputils.APIFunc) http.HandlerFunc {
 		}
 		}
 
 
 		if err := handlerFunc(ctx, w, r, vars); err != nil {
 		if err := handlerFunc(ctx, w, r, vars); err != nil {
-			logrus.Errorf("Handler for %s %s returned error: %+v", r.Method, r.URL.Path, err)
+			statusCode := httputils.GetHTTPErrorStatusCode(err)
+			errFormat := "%v"
+			if statusCode == http.StatusInternalServerError {
+				errFormat = "%+v"
+			}
+			logrus.Errorf("Handler for %s %s returned error: "+errFormat, r.Method, r.URL.Path, err)
 			httputils.MakeErrorHandler(err)(w, r)
 			httputils.MakeErrorHandler(err)(w, r)
 		}
 		}
 	}
 	}