@Aspect
@Configuration
public class WebServiceLogger {
private Logger logger = LoggerFactory.getLogger(this.getClass());
/*
* 定义一个切入点
*/
@Pointcut("execution(* com.example.service.GirlService.*(..))")
public void excudeService(){}
/*
* 通过连接点切入
*/
@Before("excudeService()")
public void doBefore(JoinPoint joinPoint){
// 接收到请求,记录请求内容
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()); // 请求方法 get、post
logger.info("IP : " + request.getRemoteAddr()); // 请求者IP
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();
System.out.println(paraName+": "+request.getParameter(paraName));
}
}
@AfterReturning("excudeService()")
public void doAfterReturning(JoinPoint joinPoint){
// 处理完请求,返回内容
logger.info("WebLogAspect.doAfterReturning()");
}
}
SpringBoot 使用 AOP 打印请求日志
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 前言 在日常工作中,我们免不了要打印很多log。而大部分需要输出的log又是重复的(例如传入参数,返回值)。因此,...
- 通过AOP统一处理web请求日志,只需要添加两个依赖即可: 一般不需要其他任何配置,即可使用。 1.先定义一个注解...
- 前言 把文章在简书同步了之后,有几篇文章被收入专题,还有一篇文章被收入首页,尽管不是什么了不起的事,但是这样也让自...
- 课程目录:SpringBoot工程• 参数解析• HTTP Method• Velocity• Request/R...