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

时间:2019-02-23 01:35:19

标签: java spring spring-web

在所有控制器通用的异常处理程序下面,正常工作,只是我需要在处理异常后从AbstractHandlerExceptionResolver类禁用WARN日志。使用Spring-webmvc 5x版本。

@ControllerAdvice
public class AllExceptionHandler{
    @ExceptionHandler(SomeCustomException.class)
    @ResponseStatus(HttpStatus.BAD_REQUEST)
    public void exceptionHandler() {
    }
}

这是我要避免的日志:

  

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

我没有使用Spring Boot。

试图使用 ExceptionHandlerExceptionResolver 扩展上述 AllExceptionHandler 类,并在 AllExceptionHandler 构造函数中调用 warnLogCategory(null) ,但会引发NullPointerException。

此外,我在Google上看到将此属性设置为“ spring.mvc.log-resolved-exception = false”以禁用警告,但不确定在何处/如何进行设置。

2 个答案:

答案 0 :(得分:0)

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

logger("org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver", ERROR)

答案 1 :(得分:0)

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

<块引用>

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

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

<块引用>

是否启用对由“HandlerExceptionResolver”解决的异常的警告日志,“DefaultHandlerExceptionResolver”除外。

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