首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

log4j的使用解决方法

2012-05-22 
log4j的使用struts2+hibernate+spring 做架构 使用log4j做日志。在记录错误日志时,应该怎么处理 不会每次执

log4j的使用
struts2+hibernate+spring 做架构 使用log4j做日志。
在记录错误日志时,应该怎么处理 不会每次执行 hql语句的时候都要 try catch 一下吧 这样做是不是太麻烦了
求高手赐教

[解决办法]
冒似可以用spring的aop,弄个切面处理日志,然后在处理正常逻辑。
[解决办法]
spring的AOP可以
[解决办法]
既然是spring的,只要是使用了spring的事务管理,那就不需要自己try catch
2种方案
1.在xml文件中配置一个exceptionResolver,可以自定义扑捉哪种Exception,以及重定向的路径
[code=xml]
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView" value="failure" />
<property name="exceptionMappings">
<props>
<prop key="java.lang.RuntimeException">exception </prop>
</props>
</property>
</bean>
[/code]

2.以注解方式的做法
实现一个继承AbstractHandlerExceptionResolver的类,并且将其纳入spring的bean管理
类似这样:

Java code
@Controllerpublic class ExceptionResolver extends AbstractHandlerExceptionResolver{    private Log log = LogFactory.getLog(ExceptionResolver.class);        @Override    protected ModelAndView doResolveException(            HttpServletRequest httpservletrequest,            HttpServletResponse httpservletresponse, Object obj,            Exception exception) {        ModelAndView mv = new ModelAndView("exception");        log.debug(exception.getMessage(),exception);        mv.addObject("exception", exception);                return mv;    }} 

热点排行