spring写日志

转自--dongsw

想在项目里面使用log4j做日志的记录,但现在需要写日志的类很多,而且写日志的代码都是雷同的,所以就利用spring的aop来完成写日志的任务。
首先,需要将log4j先配置好在web.xml中加入解析器servlet的配置

<context-param>     
 <param-name>log4jConfigLocation</param-name>     
 <param-value>/WEB-INF/classes/log4j.properties</param-value>  
</context-param>  
  
<servlet>     
 <servlet-name>log4j</servlet-name>  
 <servlet-class>  
  org.springframework.web.util.Log4jConfigServlet  
 </servlet-class>  
 <load-on-startup>2</load-on-startup>  
</servlet>  
  
<listener>     
  <listener-class>  
   org.springframework.web.util.Log4jConfigListener  
  </listener-class>  
 </listener> 

 

之后,由于我项目当中配置了大量的service类,类名都以Service结尾,为了方便配置使用spring当中的BeanNameAutoProxyCreator类进行aop配置。 
在spring配置文件中配置如下:

<bean class="cn.aresoft.fw.log.LoggerAdvice" id="loggerAdvice"/>  
 <bean class=  
  "org.springframework.aop.framework  
  .autoproxy.BeanNameAutoProxyCreator" >  
<!-- 始终以CGLib技术动态代理-->  
<!-- <property name="optimize"><value>true</value></property>  -->  
<!-- 配置开关  这句不加getBean()方法获得bean是会报类型转换异常-->  
 <property name="proxyTargetClass"><value>true</value></property>  
  
 <property name="interceptorNames">  
   <list>  
   <value>loggerAdvice</value>  
   </list>  
 </property>  
 <property name="beanNames">  
   <list>  
   <value>*Service</value>  
   </list>  
 </property>  
</bean>

 再来就是写Advice类了也就是配置中的LoggerAdvice,代码如下:

public class LoggerAdvice implements MethodBeforeAdvice,   
AfterReturningAdvice,ThrowsAdvice {  
public void before(Method method, Object[] args,  
                Object target)throws Throwable {  
   Logger logger = Logger.getLogger(target.getClass());   
   logger.debug("+Class : "+ target.getClass().getName());   
   logger.debug("+Method : "+ method.getName());   
 }  
  
public void afterReturning(Object retuVal, Method method,  
 Object[] args,Object target) throws Throwable {  
   Log log = LogFactory.getLog(target.getClass());  
   //do log  
 }  
      
public void  afterThrowing(Method method,Object[] args,  
 Object target,Exception ex){  
   Logger logger = Logger.getLogger(target.getClass());   
   logger.error("数据处理时发生异常",ex);   
 }  
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值