zoukankan      html  css  js  c++  java
  • springboot-aop日志打印

    package com.cinc.ecmp.client;
    
    import com.cinc.ecmp.enums.BackResultEnum;
    import com.cinc.ecmp.exception.BasException;
    import com.cinc.ecmp.utils.JsonUtil;
    import com.cinc.ecmp.vo.BackResult;
    import lombok.extern.slf4j.Slf4j;
    import org.aspectj.lang.JoinPoint;
    import org.aspectj.lang.annotation.AfterReturning;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
    import org.aspectj.lang.reflect.MethodSignature;
    import org.springframework.stereotype.Component;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;
    
    import javax.servlet.http.HttpServletRequest;
    import java.lang.reflect.Method;
    
    /**
     * @Author: hhr
     * @Despriction:  调用其他服务的日志打印
     * @CreatedTime: 2019/8/13 14:01
     * @ModifyBy:
     * @ModifyTime:
     * @ModifyDespriction:
     * @Version: V1.0.0
     */
    @Slf4j
    @Component
    @Aspect
    public class ClientLogRecordAspect {
    
        private final String pointCutStr = "execution(* com.cinc.ecmp.client..*.*(..))";
    
        /**
         * 定义切点
         */
        @Pointcut(pointCutStr)
        public void executeService(){
    
        }
    
        @Before("executeService()")
        public void doBefore(JoinPoint point) throws Throwable{
    
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
    
            //从切面织入点处通过反射机制获取织入点处的方法
            MethodSignature signature = (MethodSignature) point.getSignature();
            String declar = signature.getName();
            //获取切入点所在的方法
            Method method = signature.getMethod();
            log.info("============ 请求{}/{}开始 start:============",request.getRequestURI(),declar);
    
            //获取请求的类名
            String className = point.getTarget().getClass().getName();
            //获取请求的方法名
            String methodName = method.getName();
            //请求的参数
            Object[] args = point.getArgs();
            //将参数所在的数组转换成json
            String params = JsonUtil.objectToJsonStr(args);
    
            log.info("{} 参数params:{}", declar,params);
    
        }
    
    
        @AfterReturning(value = pointCutStr,returning = "resultInfo")
        public void doAfterReturn(JoinPoint point,Object resultInfo) throws Throwable{
    
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
    
            //从切面织入点处通过反射机制获取织入点处的方法
            MethodSignature signature = (MethodSignature) point.getSignature();
            String declar = signature.getName();
            //获取切入点所在的方法
            Method method = signature.getMethod();
    
            log.info("{}返回参数params:{}",declar, JsonUtil.objectToJsonStr(resultInfo));
    
            BackResult backResult = (BackResult)resultInfo;
    
            if (null == backResult || !BackResultEnum.SUCCESS.getCode().equals(backResult.getCode())){
                throw new BasException("ERROR","调用" + declar + "失败");
            }
    
            log.info("============ 请求{}/{}结束 end ============" , request.getRequestURI(),declar);
        }
    
    
    }
    

      

  • 相关阅读:
    如何解决tensorflow报:Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
    windows10下如何进行源码编译安装tensorflow
    windows10如何安装cpu版本tensorflow
    git:RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Reques t Entity Too Larg
    ubuntu 18.04 64bit如何安装GPU版本tensorflow
    pip安装tensorflow-gpu好慢怎么办
    linux下split切割的文件如何合并
    Java使用FileOutputStream写入文件
    springmvc文件上传 参数为MultipartFile 转换为File
    Java中FileOutputStream流的write方法
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/11361699.html
Copyright © 2011-2022 走看看