SpringBoot用SpringAOP实现页面日志访问功能

Posted guroer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot用SpringAOP实现页面日志访问功能相关的知识,希望对你有一定的参考价值。

每一个页面写请求日志太麻烦了,用AOP很方便的实现日志记录功能


@Aspect
@Component
public class LogAspect 
    private final static Logger LOGGER = LoggerFactory.getLogger(LogAspect.class);

    @Pointcut("execution(public * com.bao.cms.controller..*.*(..))")
    public void controllerMethod() 
    
    @Before("controllerMethod()")
    public void LogRequestInfo(JoinPoint joinPoint) throws Exception 

        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        StringBuffer requestLog = new StringBuffer();
        requestLog.append("request:")
                .append("URL = " + request.getRequestURI() + ",\\t")
                .append("HTTP_METHOD = " + request.getMethod() + ",\\t")
                .append("IP = " + request.getRemoteAddr() + ",\\t")
                .append("CLASS_METHOD = " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName() + ",\\t");

        if(joinPoint.getArgs().length == 0) 
            requestLog.append("ARGS =  ");
         else 
            requestLog.append("ARGS = " + new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL)
                    .writeValueAsString(joinPoint.getArgs()[0]) + "");
        

        LOGGER.info(requestLog.toString());
    



 

 

 

技术图片

 

参考

https://www.cnblogs.com/wangshen31/p/9379197.html

https://blog.csdn.net/qq_35206261/article/details/81945618

以上是关于SpringBoot用SpringAOP实现页面日志访问功能的主要内容,如果未能解决你的问题,请参考以下文章

在SpringBoot中用SpringAOP实现日志记录功能

SpringBoot之集成SpringAOP分析

SpringBoot之集成SpringAOP分析

读写分离很难吗?springboot结合aop简单就实现了

SpringAOP使用及源码分析(SpringBoot下)

SpringAOP使用及源码分析(SpringBoot下)