@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 打印请求日志
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 前言 在日常工作中,我们免不了要打印很多log。而大部分需要输出的log又是重复的(例如传入参数,返回值)。因此,...
- 通过AOP统一处理web请求日志,只需要添加两个依赖即可: 一般不需要其他任何配置,即可使用。 1.先定义一个注解...
- 前言 把文章在简书同步了之后,有几篇文章被收入专题,还有一篇文章被收入首页,尽管不是什么了不起的事,但是这样也让自...
- 课程目录:SpringBoot工程• 参数解析• HTTP Method• Velocity• Request/R...