Spring Boot AOP Log
来源:互联网 发布:二级代理软件 编辑:程序博客网 时间:2024/06/14 10:16
package com.avp.mems.business.config;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.slf4j.Logger;import org.slf4j.LoggerFactory;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.util.Enumeration;/** * Created by Amber on 2017/5/19. * 实现日志切面 */@Aspect@Componentpublic class WebLogAspect { private Logger logger = LoggerFactory.getLogger(this.getClass()); ThreadLocal<Long> startTime = new ThreadLocal<>(); /** * 定义一个切入点. * 解释下: * * ~ 第一个 * 代表任意修饰符及任意返回值. * ~ 第二个 * 任意包名 * ~ 第三个 * 代表任意方法. * ~ 第四个 * 定义在web包或者子包 * ~ 第五个 * 任意方法 * ~ .. 匹配任意数量的参数. */ @Pointcut("execution(public * com.avp.mems.business.resource..*.*(..))") public void webLog(){ } @Before("webLog()") public void doBefore(JoinPoint joinPoint){ startTime.set(System.currentTimeMillis()); // 接收到请求,记录请求内容// logger.info("WebLogAspect.doBefore()"); ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); // 记录下请求内容 logger.info("URL : " + request.getRequestURL().toString()); logger.info("HTTP_METHOD : " + request.getMethod()); logger.info("IP : " + request.getRemoteAddr()); logger.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());// logger.info("ARGS : " + Arrays.toString(joinPoint.getArgs())); //获取所有参数方法一: Enumeration<String> enu=request.getParameterNames(); while(enu.hasMoreElements()){ String paraName=(String)enu.nextElement(); logger.info(paraName+": "+request.getParameter(paraName)); } } @AfterReturning("webLog()") public void doAfterReturning(JoinPoint joinPoint){ // 处理完请求,返回内容// logger.info("WebLogAspect.doAfterReturning()"); logger.info("Use Your Time (ms) : " + (System.currentTimeMillis() - startTime.get())); }}
阅读全文
0 0
- Spring Boot AOP Log
- spring aop log日志
- spring boot log日志
- Spring Boot AOP实例
- spring boot aop
- Spring Boot AOP
- Spring Boot AOP代理
- Spring boot 设置AOP
- 学习Spring boot AOP
- spring boot AOP
- spring boot 中使用log
- spring boot之log日志
- Spring boot 集成 aop 配置
- spring boot 添加aop功能
- spring boot-aop的使用
- spring-boot之aop使用
- Spring Boot+AOP记录日志
- spring boot中使用AOP
- 编程第六十七、六十八天
- CentOS7.2部署FTP
- left join、right join 与inner join的区别
- 简述K最近邻(cs231n笔记)
- 隔行换色js
- Spring Boot AOP Log
- mysql5.6主从同步
- UUID.randomUUID().toString() 的作用
- 关于HTML页面DOMContentLoaded和Window.onload区别
- 编程第六十九天
- ElasticSearch实战使用
- 项目进行JVM调优 Jconsole
- 5-30
- 深入理解CSS元素可见性visibility及应用场景