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 }到此这篇springboot aop日志管理(spring boot 日志管理)的文章就 介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/jszy-cpgl/33554.html