AOP实现全局日志功能

AOP实现全局日志功能

1、先创建一个注解

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog {
    String value() default "";
}

2、创建一个切面类

	@Aspect
	@Order(5)
	@Component
	public class LogAspect {
		private static final Logger logger = LoggerFactory.getLogger(WebLogAspect.class);
		private ThreadLocal<Long> startTime = new ThreadLocal();
	    public WebLogAspect() {
  		  }
  		  //定义pointCut
  		   @Pointcut("@annotation(SysLog全类名)")
		    public void webLog() {
		    }
	}

3、通知方法

//前置通知 @Before
 @Before("webLog()")
    public void doBefore(JoinPoint joinPoint) {
        try {
           //自定义操作
        } catch (Exception var10) {
            logger.error(var10.getMessage());
        }
    }
//后置通知,此处同上
@After("webLog()")

//返回通知 @AfterReturning 
//定义返回参数 object  ret
@AfterReturning(
        returning = "ret",
        pointcut = "webLog()"
    )
    public void doAfterReturning(Object ret) {
        try {
           //自定义操作
        } catch (Exception var4) {
            logger.error(var4.getMessage());
        }
    }

//异常通知 @AfterThrowing 此处同上

//环绕通知 @Around
 public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        try {
            Object obj = proceedingJoinPoint.proceed();
            return obj;
        } catch (Exception var3) {
            logger.error(var3.getMessage());
            throw var3;
        }
    }

4、使用
在要记录日志方法上加上@SysLog()注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值