我创建了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。
答案 0 :(得分:1)
您可以查看以下链接以查找您的问题。在配置log4j之前,您似乎正在使用logger实例
答案 1 :(得分:0)
问题是缺少spring包的log4j appender。
<logger name="org.springframework.web">
<level value="debug"/>
<appender-ref ref="CONSOLE"/>
</logger>