Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志
2016-01-12 15:29
1031 查看
在使用SimpleMappingExceptionResolver实现统一异常处理后(参考Spring MVC的异常统一处理方法),发现出现异常时,log4j无法在控制台输出错误日志。因此需要自定义一个继承至SimpleMappingExceptionResolver的RrtongMappingExceptionResolver类,在RrtongMappingExceptionResolver中通过log.error(ex.getMessage())的方式输出日志到控制台上。以下是具体的配置和RrtongMappingExceptionResolver的实现。
配置自定义的统一异常处理类RrtongMappingExceptionResolver
实现统一异常处理类RrtongMappingExceptionResolver
配置自定义的统一异常处理类RrtongMappingExceptionResolver
<bean name="exceptionResolver" class="com.rrtong.frame.exception.RrtongMappingExceptionResolver"> <!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception --> <property name="exceptionAttribute" value="ex"></property> <!--定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值--> <property name="exceptionMappings"> <props> <prop key="com.rrtong.frame.exception.GuideTestException">../../exception/error-interface</prop> <!--<prop key="com.rrtong.frame.exception.NotLoginException">login</prop>--> <prop key="java.lang.Exception">../../exception/errorPage</prop> </props> </property> <property name="statusCodes"> <props> <prop key="errors/error">500</prop> <prop key="errors/404">404</prop> </props> </property> <!-- 设置日志输出级别,不定义则默认不输出警告等错误日志信息 --> <property name="warnLogCategory" value="DEBUG" /> <!-- 默认HTTP状态码 --> <property name="defaultStatusCode" value="500" /> </bean>
实现统一异常处理类RrtongMappingExceptionResolver
/** * @className: RrtongMappingExceptionResolver * @description: 继承至SimpleMappingExceptionResolver的自定义的统一异常处理 * @author: Administrator * @date 2016年1月12日 */ public class RrtongMappingExceptionResolver extends SimpleMappingExceptionResolver{ private final static Logger log = LoggerFactory.getLogger(RrtongMappingExceptionResolver.class); @Override protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { Map<String, Exception> model = new HashMap<String, Exception>(); model.put("ex", ex); ModelAndView modelAndView = new ModelAndView("../../exception/errorPage",model); /*错误日志输出到控制台*/ log.error(ex.getMessage()); return modelAndView; } }
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- 如何优雅地处理前端异常?
- 比较详细的WinXP故障恢复控制台完全手册第1/2页
- mysql 控制台操作
- PowerShell实现在控制台中插入绿色的打勾符号
- C#控制台模拟电梯工作原理
- C#使用控制台列出当前所有可用的打印机列表
- C#异常处理详解
- 轻松学习C#的异常处理
- C#下载网页并在控制台输出的方法
- C++实现基于控制台界面的吃豆子游戏
- PHP异常处理Exception类
- c#入门之枚举和结构体使用详解(控制台接收字符串以相反的方向输出)
- JS异常处理的一个想法(sofish)
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的