spring里捕捉全局异常

项目里搭建了ELK日志分析,能够将后台的不同级别日志分类检索查看,其中error日志主要包括各种抛出的异常,用于定位系统的问题。
error日志的打印使用了logback的error()方法,但是如果要把每个异常都打印出来的话,需要在controller层的catch块中写:
logger.error("出错原因",ex);
由于需要每个异常人工写错误日志打印,经常出现遗漏,所以想找一个集中的点,把遗漏的异常打印出来,用于排错。
目前采用SimpleMappingExceptionResolver来处理。
1、代码处理
public class CustomExceptionHandler implements HandlerExceptionResolver {

@Override  
public ModelAndView resolveException(HttpServletRequest request,  
        HttpServletResponse response, Object object, Exception exception) {  
    ModelAndView modelAndView = new ModelAndView("/frame/error", model);
    /* 错误日志输出到控制台 */
    logger.error("捕捉到Spring全局异常",ex);
    return modelAndView;
}  

}

2、声明到 Spring 配置文件





/frame/error


这样如果controller层没有捕捉的异常,也可以打印出错误日志。

你可能感兴趣的:(spring里捕捉全局异常)