在 Spring 中禁用 AbstractHandlerExceptionResolver 的 WARN 日志记录

use*_*706 5 java spring spring-mvc

下面的异常处理程序对我的所有控制器来说都很常见,工作正常,只是我需要AbstractHandlerExceptionResolver在处理异常后从类中禁用 WARN 日志。使用Spring Web MVC 5.x版本。

@ControllerAdvice
public class AllExceptionHandler{
    @ExceptionHandler(SomeCustomException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public void exceptionHandler() {
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我试图避免生成的日志:

2019 年 2 月 20 日 15:22:54,896 警告 [http-nio-8080-exec-1] (AbstractHandlerExceptionResolver.java:140) - 已解决 [com.rasa.rrt.ste.controller.SomeCustomException]

我没有使用 Spring Boot。

尝试使用构造函数扩展并调用上面的AllExceptionHandler类 ,但它抛出.ExceptionHandlerExceptionResolverwarnLogCategory(null)AllExceptionHandlerNullPointerException

另外,我在 Google 上看到设置此属性spring.mvc.log-resolved-exception=false以禁用警告,但不确定在哪里/如何设置它。

M. *_*tin 5

您提到了spring.mvc.log-resolved-exception=false一个可能的解决方案:

另外,我在谷歌上看到设置此属性“spring.mvc.log-resolved-exception = false”以禁用警告,但不确定在哪里/如何设置它。

spring.mvc.log-resolved-exception属性是Spring Boot property,并且将使用标准 Spring Boot外部化配置机制进行设置。启用该属性会导致 Spring Boot 将 bean 配置HandlerExceptionResolver为记录异常,否则它们不会记录异常。

是否启用由“HandlerExceptionResolver”(“DefaultHandlerExceptionResolver”除外)解决的异常的警告日志记录。

由于您已声明您没有使用 Spring Boot,因此此属性不适用于您的场景。


Cen*_*tos 2

您可以在 logback 配置中禁用此警告日志,方法是在我的情况下在“logback-spring.groovy”以下行中指定

logger("org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver", ERROR)
Run Code Online (Sandbox Code Playgroud)