diff --git a/system/src/main/java/com/njcn/gather/system/log/aop/LogAdvice.java b/system/src/main/java/com/njcn/gather/system/log/aop/LogAdvice.java index 1eeb8fdc..e71fdc71 100644 --- a/system/src/main/java/com/njcn/gather/system/log/aop/LogAdvice.java +++ b/system/src/main/java/com/njcn/gather/system/log/aop/LogAdvice.java @@ -75,6 +75,7 @@ public class LogAdvice implements ApplicationListener { Object result = null; try { + sysLogAuditService.scheduleRemoveLog(); result = joinPoint.proceed(); addLogToQueue(joinPoint, "".equals(username) ? UserConstant.UNKNOWN_USER_ID : username, LogOperationTypeEnum.OPERATE.getMsg(), 1, LogLevelEnum.INFO.getCode(), 0); } catch (Throwable e) { diff --git a/system/src/main/java/com/njcn/gather/system/log/service/ISysLogAuditService.java b/system/src/main/java/com/njcn/gather/system/log/service/ISysLogAuditService.java index b0aa151e..a1dbc0a2 100644 --- a/system/src/main/java/com/njcn/gather/system/log/service/ISysLogAuditService.java +++ b/system/src/main/java/com/njcn/gather/system/log/service/ISysLogAuditService.java @@ -51,4 +51,9 @@ public interface ISysLogAuditService extends IService { * @return */ Integer getMaxSort(); + + /** + * 按照 一定规则 清除日志 + */ + void scheduleRemoveLog(); } diff --git a/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java b/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java index 7c5018f3..ad4b13e9 100644 --- a/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java +++ b/system/src/main/java/com/njcn/gather/system/log/service/impl/SysLogAuditServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.gather.system.log.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -117,4 +118,15 @@ public class SysLogAuditServiceImpl extends ServiceImpl wrapper = new QueryWrapper<>(); + wrapper.lt("Create_Time", LocalDateTime.now().minusDays(30*6)); + int count = this.count(); + if (count > 1e6) { + wrapper.or().orderByAsc("Create_Time").last("limit "+(count-1e6)); + } + this.remove(wrapper); + } }