类 LogRetentionService

java.lang.Object
net.sohelp.boot.demo.core.task.LogRetentionService

@Service public class LogRetentionService extends Object
操作日志留存服务

等保2.0合规要求(分级保留策略):

  • 普通操作日志(is_important=0):主表保留 ≥ 6个月(180天),归档保留 2年
  • 重要操作日志(is_important=1):主表保留 ≥ 1年(365天),归档保留 3年

重要操作包括:权限变更、角色分配、系统配置修改、菜单变更等高风险操作, 通过 @OperationLog(important = true) 标记。

 数据分层:
   在线(主表 pb_operation_record)            :最近 90 天,供日常查询
   近线(归档表 pb_operation_record_archive)   :90天 ~ 2~3年,供审计追溯
 

执行策略(每日凌晨3点触发):

  1. 将主表中超过 90 天的日志全量复制到归档表(NOT EXISTS 保证幂等)
  2. 删除主表中普通日志(is_important=0)超过 180 天的记录
  3. 删除主表中重要日志(is_important=1)超过 365 天的记录
  4. 清理归档表中普通日志超过 730 天(2年)的记录
  5. 清理归档表中重要日志超过 1095 天(3年)的记录
从以下版本开始:
2026-03-23
作者:
AaronFung
  • 构造器详细资料

    • LogRetentionService

      public LogRetentionService()
  • 方法详细资料

    • runDailyRetention

      @Scheduled(cron="0 0 3 * * ?") public void runDailyRetention()
      每日凌晨3点执行日志归档和清理