1 @Aspect 2 @Component 3 public class WebLogAspect { 4 5 private static final Logger logger = LoggerFactory.getLogger(WebLogAspect.class); 6 7 @Pointcut(“execution( * com.tswc.edu.controller..(..))”)//两个..代表所有子目录,最后括号里的两个..代表所有参数 8 public void logPointCut() { 9 } 10 11 12 @Before(“logPointCut()”) 13 public void doBefore(JoinPoint joinPoint) throws Throwable { 14 // 接收到请求,记录请求内容 15 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); 16 HttpServletRequest request = attributes.getRequest(); 17 18 // 记录下请求内容 19 logger.info(“请求地址 : ” + request.getRequestURL().toString()); 20 //logger.info(“方法描述 : ” + ); 21 logger.info(“HTTP METHOD : ” + request.getMethod()); 22 // 获取真实的ip地址 23 //logger.info(“IP : ” + IPAddressUtil.getClientIpAddress(request)); 24 logger.info(“CLASS_METHOD : ” + joinPoint.getSignature().getDeclaringTypeName() + “.” 25 + joinPoint.getSignature().getName()); 26 logger.info(“参数 : ” + Arrays.toString(joinPoint.getArgs())); 27 // loggger.info(“参数 : ” + joinPoint.getArgs()); 28 29 } 30 31 @AfterReturning(returning = “ret”, pointcut = “logPointCut()”)// returning的值和doAfterReturning的参数名一致 32 public void doAfterReturning(Object ret) throws Throwable { 33 // 处理完请求,返回内容(返回值太复杂时,打印的是物理存储空间的地址) 34 logger.debug(“返回值 : ” + ret); 35 } 36 37 @Around(“logPointCut()”) 38 public Object doAround(ProceedingJoinPoint pjp) throws Throwable { 39 long startTime = System.currentTimeMillis(); 40 Object ob = pjp.proceed();// ob 为方法的返回值 41 logger.info(“耗时 : ” + (System.currentTimeMillis() - startTime)); 42 return ob; 43 } 44 }
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/196978.html