0

我创建了 ExcpetionHandler 类,该类@ControllerAdivce使用 Eclipse Tomcat 服务器进行了注释,该类可以正常工作。

当我构建项目并将其部署到某些 unix 机器上的 tomcat 时,异常处理程序没有被触发。

我注意到一些 log4j 警告只在 unix 机器上生成。

log4j xml 已配置并且所有附加程序都在工作。

只有在添加了下面的类之后,我才开始收到下面的 log4j 消息。

任何想法 ?

@ControllerAdvice
public class ExceptionController {

    @ExceptionHandler(RuntimeException.class)
    public ResponseEntity<ClientErrorMessage> handleRunTimeException(HttpServletRequest request, RuntimeException exception) {
       ClientErrorMessage message = SOME_MESSAGE
       return new ResponseEntity<>(message, HttpStatus.INTERNAL_SERVER_ERROR);
    }

}

log4j:警告找不到记录器的附加程序(org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver)。log4j:WARN 请正确初始化 log4j 系统。log4j:WARN 有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig

4

2 回答 2

1

您可以查看以下链接以了解您的问题。看来您在配置 log4j 之前正在使用记录器实例

找不到记录器(log4j)的附加程序?

于 2016-06-29T13:57:04.263 回答
0

问题是缺少 spring 包的 log4j appender。

<logger name="org.springframework.web">
  <level value="debug"/>
  <appender-ref ref="CONSOLE"/>
</logger>
于 2016-06-29T14:08:10.647 回答