diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java index 71a941d7481..3d734fe9689 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerExceptionResolver.java @@ -128,12 +128,16 @@ public abstract class AbstractHandlerExceptionResolver implements HandlerExcepti HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { if (shouldApplyTo(request, handler)) { - if (this.logger.isDebugEnabled()) { - this.logger.debug("Resolving exception from handler [" + handler + "]: " + ex); - } prepareResponse(ex, response); ModelAndView result = doResolveException(request, response, handler, ex); if (result != null) { + + // Print warn message, when warn logger is not enabled.. + if (logger.isWarnEnabled() && (this.warnLogger == null || !this.warnLogger.isWarnEnabled())) { + logger.warn("Resolved [" + ex + "]" + (result.isEmpty() ? "" : " to " + result)); + } + + // warnLogger with full stack trace (requires explicit config).. logException(ex, request); } return result; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java index ef5d37fd0e2..eae4a1b138d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/support/DefaultHandlerExceptionResolver.java @@ -218,7 +218,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes protected ModelAndView handleHttpRequestMethodNotSupported(HttpRequestMethodNotSupportedException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - pageNotFoundLogger.warn(ex.getMessage()); String[] supportedMethods = ex.getSupportedMethods(); if (supportedMethods != null) { response.setHeader("Allow", StringUtils.arrayToDelimitedString(supportedMethods, ", ")); @@ -342,9 +341,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes protected ModelAndView handleConversionNotSupported(ConversionNotSupportedException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - if (logger.isWarnEnabled()) { - logger.warn("Failed to convert request element: " + ex); - } sendServerError(ex, request, response); return new ModelAndView(); } @@ -363,9 +359,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes protected ModelAndView handleTypeMismatch(TypeMismatchException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - if (logger.isWarnEnabled()) { - logger.warn("Failed to bind request element: " + ex); - } response.sendError(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView(); } @@ -386,9 +379,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes protected ModelAndView handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - if (logger.isWarnEnabled()) { - logger.warn("Failed to read HTTP message: " + ex); - } response.sendError(HttpServletResponse.SC_BAD_REQUEST); return new ModelAndView(); } @@ -410,9 +400,6 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes protected ModelAndView handleHttpMessageNotWritable(HttpMessageNotWritableException ex, HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - if (logger.isWarnEnabled()) { - logger.warn("Failed to write HTTP message: " + ex); - } sendServerError(ex, request, response); return new ModelAndView(); } @@ -508,8 +495,8 @@ public class DefaultHandlerExceptionResolver extends AbstractHandlerExceptionRes if (!response.isCommitted()) { response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE); } - else if (logger.isDebugEnabled()) { - logger.debug("Async timeout for " + request.getMethod() + " [" + request.getRequestURI() + "]"); + else { + logger.warn("Async request timed out"); } return new ModelAndView(); }