LogAOP计算每个接口的调用时间

来源:互联网 发布:淘宝账户永久冻结解冻 编辑:程序博客网 时间:2024/05/22 08:06

util类里添加:

package anmav.menu.utils;import common.anmav.utils.JsonUtils;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.Signature;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Pointcut;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.EnableAspectJAutoProxy;import org.springframework.stereotype.Component;/** * @author Nero * @since 2017年11月9日 *  */@Aspect //  声明切面@Component //声明组件@ComponentScan //组件自动扫描@EnableAspectJAutoProxy //spring自动切换JDK动态代理和CGLIBpublic class LogAOP {    /**     *自定义日志     */    private Logger logger = LoggerFactory.getLogger("menu-log-statics");    @Pointcut("execution (public * anmav.menu.controller..* (..))")    public void methodPointCut() {    }    @Around("methodPointCut()")    public Object doBeforeAdvice(ProceedingJoinPoint joinPoint) throws Throwable {        //获取目标方法的参数信息          Object[] obj = joinPoint.getArgs();        //用的最多 通知的签名          Signature signature = joinPoint.getSignature();        //代理的是哪一个方法          String methodNmae = signature.getName();        //AOP代理类的名字          String className = signature.getDeclaringTypeName();        logger.info(className + "." + methodNmae + ", request: " + JsonUtils.objectToJson(obj));        long beginTime = System.currentTimeMillis();        Object result = joinPoint.proceed();        long endTime = System.currentTimeMillis();        logger.info(className + "." + methodNmae + ", response: " + JsonUtils.objectToJson(result));                long elapsedTime = endTime - beginTime;        if (elapsedTime < 500) {            logger.info(className + "." + methodNmae + ", elapsed: " + elapsedTime + "ms.");        } else {            logger.warn(className + "." + methodNmae + ", elapsed: " + elapsedTime + "ms.");        }                return result;    }}
pom.xml添加依赖:

  <dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-aop</artifactId>  </dependency>

结果:




原创粉丝点击