Spring AOP 进行统一日志处理

java代码:
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.aspectj.lang.ProceedingJoinPoint;

public class GenericLoggerBean {

private static Logger logger = LogManager.getLogger(GenericLoggerBean.class);

public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println(joinPoint.getTarget().getClass());
logger.warn("Beginning method : " + joinPoint.getTarget().getClass() + "." + joinPoint.getSignature().getName()+ "()");
long startTime = System.currentTimeMillis();
try{
Object result = joinPoint.proceed();
return result;
}catch(Exception e){
logger.warn( joinPoint.getTarget().getClass() + "." + joinPoint.getSignature().getName() + "() invoke error" );
logger.warn("error info ["+e.getMessage()+"]");
}finally{
logger.warn("Ending method : " + joinPoint.getTarget().getClass() + "." + joinPoint.getSignature().getName() + "()");
logger.warn("Method invocation time : " + (System.currentTimeMillis() - startTime) + " ms.");
}
return null;
}

}


spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">


<aop:config>
<aop:pointcut id="logger"
expression="execution( public * com.potato..*.*(..)) and !execution( * com.potato.core.aop.GenericLogger.*(..))" />
<aop:aspect id="loggerAspect" ref="genericLoggerBean">
<aop:around pointcut-ref="logger" method="invoke" />
</aop:aspect>
</aop:config>


<bean id="genericLoggerBean"
class="com.potato.core.aop.GenericLoggerBean">
</bean>


</beans>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值