Spring Boot集成AopLog + equator实现后台操作日志功能

 一、AopLog介绍与使用

         AopLog是基于SpringAop和ThreadLocal实现的一个对请求方法埋点信息收集与处理的日志工具包。git地址(有详细的介绍和使用方法):跳转

     使用方法:

        1、先在pom中引入依赖:

    <dependency>
	    <groupId>com.github.ealenxie</groupId>
	    <artifactId>aop-log</artifactId>
	    <version>2.5</version>
    </dependency>

        2、新建自定义全局的日志收集器实现收集 LogCollector:

@Slf4j
// 向Spring容器中注册bean
@Component
// 继承LogCollector
public class AopLogCollector implements LogCollector {

    @Autowired
    // 注入数据库持久层(项目使用的是Spring-Data-JPA)
    private SysLogDataRepository sysLogDataRepository;

    /**
     * 实现LogCollector的collect方法
     * @param logData 埋点日志对象,存储各种埋点数据
     */
    @Override
    public void collect(LogData logData) {
        // 项目中的DO类,属性参数类似LogData
        SysLogData sysLogData = new SysLogData();
        // 将LogData中的属性拷贝到DO对象中
        BeanUtil.copyProperties(logData, sysLogData);
        // 获取当前的操作用户
        String username = SysJwtTokenUtil.getUsername();
        // 设置当前操作用户
        sysLogData.setUserName(username);
        // 设置创建时间(操作时间)
        sysLogData.setCreateTime(new Date());
        // 存入数据库
        sysLogDataRepository.saveAndFlush(sysLogData);
    }

}

 跳转到埋点日志对象logdata属性说明

        3、使用AopLog注解进行埋点收集(这里使用项目中的删除接口为例):

@Slf4j
@RestController
public class AppBannerController extends AdminController {

    @Autowired
    private AppBannerService appBannerService;

    // 使用@AopLog注解进行埋点收集
    @AopLog(type = "banner配置删除操作", headers = "token")
    @PostMapping("/banner/del")
    public ApiResult delete(@RequestBody AppBanner appBanner) {
        if (appBanner.getId() == null || appBanner.getId() < 1) {
            return ApiResult.fail(-1, "id错误");
        }
        appBannerService.de
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值