Spring Boot(十一)使用AOP,@Aspect统一处理Web请求日志
来源:互联网 发布:游戏直播软件 编辑:程序博客网 时间:2024/06/05 16:41
项目GitHub地址 :
https://github.com/FrameReserve/TrainingBoot
https://github.com/FrameReserve/TrainingBoot/releases/tag/0.0.11
增加Web层日志切面类:
package com.training.core.aspect;import org.apache.log4j.Logger;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.springframework.core.annotation.Order;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.Arrays;/** * Web层日志切面 */@Aspect@Order(5)@Componentpublic class WebLogAspect { private Logger logger = Logger.getLogger(getClass()); ThreadLocal<Long> startTime = new ThreadLocal<>(); @Pointcut("execution(public * com.training..*.*Controller(..))") public void webLog(){} @Before("webLog()") public void doBefore(JoinPoint joinPoint) throws Throwable { startTime.set(System.currentTimeMillis()); // 接收到请求,记录请求内容 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())); } @AfterReturning(returning = "ret", pointcut = "webLog()") public void doAfterReturning(Object ret) throws Throwable { // 处理完请求,返回内容 logger.info("RESPONSE : " + ret); logger.info("SPEND TIME : " + (System.currentTimeMillis() - startTime.get())); }}
0 0
- Spring Boot(十一)使用AOP,@Aspect统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- Spring Boot中使用AOP统一处理Web请求日志
- spring boot 使用AOP统一处理Web请求日志
- 46. Spring Boot中使用AOP统一处理Web请求日志【从零开始学Spring Boot】
- 46. Spring Boot中使用AOP统一处理Web请求日志【从零开始学Spring Boot】
- 46. Spring Boot中使用AOP统一处理Web请求日志
- spring boot @Aspect 统一日志处理
- spring boot 基础之使用AOP统一处理请求日志使用方法
- Springboot学习-使用AOP统一处理Web请求日志(六)
- SpringCloud(第 048 篇)使用AOP统一处理Web请求日志
- springboot【19】日志管理之使用AOP统一处理Web请求日志
- Spring Boot:(四)统一日志处理
- (十四)SpringBoot使用AOP统一处理Web请求日志添加MDC
- Spring 学习5--使用AOP统一处理日志
- SpringBoot AOP统一处理请求日志
- centos6.7 源码搭建lamp(apache)
- 微信检测开通的方法
- 团队
- webpack样式处理
- 从机器学习谈起
- Spring Boot(十一)使用AOP,@Aspect统一处理Web请求日志
- Mac下的串口通信-ORSSerialPort
- 仿造饿了么下单按钮的自定义View
- Netty4.1.x ChannelHandler
- 鼠标滚轮事件及其兼容
- 应用题分析思路--关注点分离
- Codeforces 443C Borya and Hanabi【暴力+思维】
- Kafka--Caused by: kafka.common.ConsumerRebalanceFailedException
- 轮子系列:一款能用易用好用的Android图片轮播轮子