import javax.servlet.http.HttpServletRequest;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.*;
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;
/**
* Created by Ma.li.ran on 2017/09/23 16:46
* 统一日志
* AOP拦截处理,避免重复代码,统一处理,公用为切面~~
*/
@Aspect
@Component//注入spring
public class HttpAspect {
private final static Logger logger = (Logger) LoggerFactory.getLogger(HttpAspect.class);
@Pointcut("execution(* com.maqway.wxhta.controller.*.*(..))")
//切点,面向哪个类
public void log() {
}
@Before("log()")//请求之前
public void doBefore(JoinPoint joinPoint) {
//获取url
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
logger.info("url={}", request.getRequestURL());
//请求方式
logger.info("method={}", request.getMethod());
//ip
logger.info("ip={}", request.getRemoteAddr());
//请求类方法
logger.info("class_method={}",
joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
//请求参数
logger.info("args={}", joinPoint.getArgs());
}
@After("log()")//方法完成之后
public void doAfter() {
logger.info("您已登录");
}
@AfterReturning(returning = "object",pointcut = "log()")//返回
public void doAfterReturning(Object object){
logger.info("response={}",object.toString());
}
}
最近在整理一些资源工具,放在网站分享 http://tools.maqway.com
欢迎关注公众号:麻雀唯伊 , 不定时更新资源文章,生活优惠,或许有你想看的```
spring aop 日志统一处理
最新推荐文章于 2022-12-13 16:02:24 发布