猿问

在 Spring 中禁用 AbstractHandlerExceptionResolver

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


@ControllerAdvice

public class AllExceptionHandler{

    @ExceptionHandler(SomeCustomException.class)

    @ResponseStatus(HttpStatus.BAD_REQUEST)

    public void exceptionHandler() {

    }

}

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


2019 年 2 月 20 日 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。


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


holdtom
浏览 262回答 2
2回答

喵喵时光机

您提到spring.mvc.log-resolved-exception=false了一个可能的解决方案:另外,我在谷歌上看到设置这个属性“spring.mvc.log-resolved-exception=false”来禁用警告,但不确定在哪里/如何设置它。该spring.mvc.log-resolved-exception属性是Spring Boot 属性,将使用标准 Spring Boot外部化配置机制进行设置。启用该属性会导致 Spring Boot 配置HandlerExceptionResolverbean 以记录异常,否则它们不会。是否启用由“HandlerExceptionResolver”解决的异常的警告日志记录,“DefaultHandlerExceptionResolver”除外。由于您已声明您没有使用 Spring Boot,因此此属性不适用于您的场景。

慕村225694

您可以在 logback 配置中禁用此警告日志,方法是在我的情况下在以下行中指定“logback-spring.groovy”logger("org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver", ERROR)
随时随地看视频慕课网APP

相关分类

Java
我要回答