Spring ExceptionHandler日志记录不起作用

时间:2016-06-29 13:49:41

标签: java spring tomcat log4j exceptionhandler

我创建了ExcpetionHandler类,它使用@ControllerAdivce注释注释,使用eclipse tomcat服务器正常工作。

当我构建项目并将其部署到某个unix机器上的tomcat时,exceptionHandler没有被触发。

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

配置log4j xml并且所有appender都在工作。

只有在添加以下课程后,才开始获取以下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:WARN找不到logger(org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver)的appender。   log4j:WARN请正确初始化log4j系统。   log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig

2 个答案:

答案 0 :(得分:1)

您可以查看以下链接以查找您的问题。在配置log4j之前,您似乎正在使用logger实例

No appenders could be found for logger(log4j)?

答案 1 :(得分:0)

问题是缺少spring包的log4j appender。

<logger name="org.springframework.web">
  <level value="debug"/>
  <appender-ref ref="CONSOLE"/>
</logger>