实现AOP中异常日志管理的类

15 篇文章 0 订阅
8 篇文章 0 订阅
功能:实现AOP中异常日志管理的类
 




import org.apache.log4j.Level;

import org.apache.log4j.Logger;



import org.aspectj.apache.bcel.classfile.Method;

import org.aspectj.lang.JoinPoint;

import org.aspectj.lang.annotation.AfterReturning;

import org.aspectj.lang.annotation.AfterThrowing;

import org.aspectj.lang.annotation.Aspect;

import org.aspectj.lang.annotation.Before;

import org.aspectj.lang.annotation.Pointcut;

import org.springframework.aop.ThrowsAdvice;

/**

 *@category com.utstar.nms.vmm.spring.aop 

 *@class LoggingThrowsAdvice

 *@zhusheng3@126.com

 *@date 2008-4-19 下午05:47:34

 */

@Aspect

public class LoggingThrowsAdvice implements ThrowsAdvice

{

    private Logger logger = 

        Logger.getLogger(this.getClass().getName()); 

  

   @Pointcut("execution(* org..*.*(..))")

   private void logging() {}

   



 @AfterThrowing(pointcut="logging()", throwing="throwable")

 public void afterThrowing(JoinPoint jointPoint, 

                           Throwable throwable) { 

 	String errMsg  = "/n ERROR:" ;

 		   errMsg +="/n throwable:"+throwable+"/n";

 		   errMsg +="error Class:"+jointPoint.getSignature().getDeclaringTypeName()+"/n";

 		   errMsg +="error Method:"+jointPoint.getSignature().getName()+"(";

 		   

 		   Object[] args = jointPoint.getArgs(); 	    

 		   for (int i = 0; i < args.length; i++)

 		   {

 			  errMsg+="["+i+"]:"+args[i]+"";	

 			  if(i<args.length-1)errMsg+=",";

 		   }

 		  errMsg+=")/n";

 		  errMsg+="error target:"+jointPoint.getTarget()+"/n";

 		  errMsg+="error kind:"+jointPoint.getKind()+"/n";

 		// errMsg+="getClass:"+jointPoint.getClass()+"/n";

// 		  errMsg+="Signature:"+jointPoint.getSignature()+"/n";

// 		  errMsg+="SourceLocation:"+jointPoint.getSourceLocation()+"/n";

 		logger.log(Level.ERROR, errMsg,throwable);

 		System.out.println(errMsg);

 		   

 } 

}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值