Spring AOP实现全局日志记录
一 前言:
在java开发中日志的管理有很多种, 在这里推荐Spring 的Aop思想将每一次请求记录 ,并且保存到数据库表中。 通常情况下,我们将项目部署到服务器后,如果接口出现了bug,那么我们就可以通过查看数据库表中记录的信息来判断这次请求是哪个用户操作的 在公司内部办公软件可以很好的使用,但是对外的项目建议使用日志几率到文件中更加符合业务场景。
二、代码详情:
ps: 涉及公司隐私信息 添加数据库代码(被修改)就不对外暴露啦 谢谢大家
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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
/**
* @author zhu
* @date 2021/11/20:30
* 统一日志处理
* TODO 使用Aop记录每一个请求
*/
@Aspect
@Component
public class HttpAspect {
@Autowired
private LogInfoMapper logInfoMapper;
private static final Logger LOGGER = LoggerFactory.getLogger(HttpAspect.cl