Skip to content

日志清理配置

概述

SnailJob 支持日志清理策略配置,有效控制存储空间占用。根据版本不同,提供不同的配置方式:

  • 开源版本:支持全局配置日志保留天数
  • PRO版本:支持按任务维度配置,同时保留全局配置

版本功能对比

功能特性开源版本PRO版本
全局日志保留天数配置
按任务维度配置
日志最大记录数限制
双重清理机制
灵活配置策略

功能特性

开源版本功能

  • 全局配置:通过 logStorage 参数统一配置所有任务的日志保留天数
  • 简单易用:配置简单,适合中小型项目
  • 默认保留:默认保留7天日志

PRO版本功能

  • 按任务维度配置:每个任务可以独立配置日志清理策略
  • 双重清理机制:支持按天数和按记录数两种清理方式
  • 灵活配置:可以单独启用或组合使用两种清理策略
  • 全局配置保留:同时支持全局配置作为默认值
  • 实时生效:配置修改后立即生效

配置说明

开源版本配置

全局日志保留天数配置

功能描述:通过全局配置统一设置所有任务的日志保留天数

配置方式

yaml
# 服务端配置文件
snail-job:
  log-storage: 7  # 全局日志保留天数,默认7天

配置说明

  • log-storage:全局日志保留天数,单位为天
  • 默认值:7天
  • 支持范围:1-365天
  • 影响范围:所有任务的日志都会按照此配置进行清理

清理规则

  • 系统会定期检查并删除超过保留天数的日志
  • 清理操作在后台异步执行,不影响任务正常执行
  • 清理后的日志无法恢复

PRO版本配置

按任务维度配置

功能描述:每个任务可以独立配置日志清理策略,同时支持全局配置作为默认值

配置优先级

  1. 任务级配置(最高优先级)
  2. 全局配置(默认值7天)

日志保留天数

功能描述:自动删除超过指定天数的历史日志记录

配置方式

  • 在任务配置页面找到"日志保留天数"选项
  • 开启开关后设置保留天数(默认继承全局配置)
  • 支持1-365天的范围设置

清理规则

  • 系统会定期检查并删除超过保留天数的日志
  • 清理操作在后台异步执行,不影响任务正常执行
  • 清理后的日志无法恢复

日志最大记录数

功能描述:限制单个任务的最大日志记录数量,超出时自动删除最旧的记录

配置方式

  • 在任务配置页面找到"日志最大记录数"选项
  • 开启开关后设置最大记录数(默认1000条)
  • 支持(>=100)条的范围设置

清理规则

  • 当日志记录数超过设定值时,自动删除最旧的记录
  • 采用FIFO(先进先出)策略进行清理
  • 清理操作实时进行,确保记录数不超过设定值

配置界面

PRO版本功能

以下配置界面仅适用于PRO版本,开源版本请使用全局配置方式。

界面说明

  1. 日志保留天数

    • 橙色开关:控制是否启用按天数清理
    • 数值输入框:设置保留天数(1-365天)
    • 默认值:继承全局配置或7天
  2. 日志最大记录数

    • 橙色开关:控制是否启用按记录数清理
    • 数值输入框:设置最大记录数(>=100)
    • 默认值:1000条

使用场景

开源版本使用场景

中小型项目

适合使用全局配置的场景:

  • 任务数量较少(< 50个)
  • 日志保留需求相对统一
  • 希望配置简单,维护成本低

配置建议

yaml
snail-job:
  log-storage: 7  # 根据项目需求调整,建议7-30天

PRO版本使用场景

高频任务场景

对于执行频率较高的任务,建议同时启用两种清理策略:

  • 设置较短的保留天数(如3-7天)
  • 设置适中的最大记录数(如500-1000条)

低频任务场景

对于执行频率较低的任务,可以只启用按天数清理:

  • 设置较长的保留天数(如30-90天)
  • 关闭按记录数清理

调试任务场景

对于需要长期保留日志的调试任务:

  • 设置较长的保留天数(如180-365天)
  • 设置较大的最大记录数(如5000-10000条)

混合场景

对于包含不同类型任务的大型项目:

  • 全局配置设置默认值
  • 重要任务单独配置较长的保留期
  • 测试任务配置较短的保留期

最佳实践

开源版本配置建议

  1. 合理设置全局保留天数

    • 生产环境:建议7-30天
    • 测试环境:建议3-7天
    • 开发环境:建议1-3天
  2. 配置示例

yaml
# 生产环境配置
snail-job:
  log-storage: 15  # 保留15天

# 测试环境配置
snail-job:
  log-storage: 5   # 保留5天

# 开发环境配置
snail-job:
  log-storage: 3   # 保留3天

PRO版本配置建议

  1. 合理设置保留天数

    • 生产环境:建议7-30天
    • 测试环境:建议3-7天
    • 开发环境:建议1-3天
  2. 合理设置最大记录数

    • 高频任务:500-1000条
    • 中频任务:1000-3000条
    • 低频任务:3000-5000条
  3. 组合使用策略

    • 建议同时启用两种清理策略
    • 确保存储空间得到有效控制
    • 避免日志数据过度积累
  4. 配置优先级管理

    • 全局配置作为默认值
    • 重要任务单独配置
    • 定期检查配置合理性

注意事项

  1. 数据安全

    • 清理后的日志无法恢复
    • 重要任务的日志建议设置较长的保留期
    • 可以定期导出重要日志进行备份
  2. 性能影响

    • 清理操作在后台异步执行
    • 不会影响任务的正常执行
    • 大量日志清理时可能短暂占用系统资源
  3. 监控建议

    • 定期检查日志清理效果
    • 根据实际使用情况调整配置
    • 关注存储空间使用情况

配置示例

开源版本配置示例

示例1:生产环境配置

yaml
# 服务端配置文件
snail-job:
  log-storage: 15  # 全局保留15天日志

示例2:测试环境配置

yaml
# 服务端配置文件
snail-job:
  log-storage: 5   # 全局保留5天日志

示例3:开发环境配置

yaml
# 服务端配置文件
snail-job:
  log-storage: 3   # 全局保留3天日志

PRO版本配置示例

示例1:高频任务配置

yaml
# 高频任务日志清理配置(此处只是说明配置参数,具体配置请在页面配置)
logRetentionDays: 7        # 保留7天
maxLogRecords: 500         # 最大500条记录

示例2:低频任务配置

yaml
# 低频任务日志清理配置(此处只是说明配置参数,具体配置请在页面配置)
logRetentionDays: 30       # 保留30天
maxLogRecords: 2000        # 最大2000条记录

示例3:调试任务配置

yaml
# 调试任务日志清理配置(此处只是说明配置参数,具体配置请在页面配置)
logRetentionDays: 90       # 保留90天
maxLogRecords: 5000        # 最大5000条记录

示例4:混合配置场景

yaml
# 全局配置(默认值)
snail-job:
  log-storage: 7  # 全局默认保留7天

# 重要任务单独配置(此处只是说明配置参数,具体配置请在页面配置)
logRetentionDays: 30     # 重要任务保留30天
maxLogRecords: 5000      # 最大5000条记录

# 测试任务单独配置(此处只是说明配置参数,具体配置请在页面配置)
logRetentionDays: 3      # 测试任务保留3天
maxLogRecords: 100       # 最大100条记录

常见问题

Q1:开源版本和PRO版本有什么区别?

A:主要区别如下:

  • 开源版本:只支持全局配置 log-storage 参数,所有任务使用相同的日志保留天数
  • PRO版本:支持按任务维度配置,同时保留全局配置作为默认值,还支持日志最大记录数限制

Q2:日志清理后还能恢复吗?

A:不能。清理后的日志记录会被永久删除,无法恢复。建议在清理前导出重要日志。

Q3:清理操作会影响任务执行吗?

A:不会。清理操作在后台异步执行,不会影响任务的正常执行。

Q4:如何确定合适的保留天数?

A:建议根据任务的重要性和执行频率来确定:

  • 重要任务:建议保留30-90天
  • 普通任务:建议保留7-30天
  • 测试任务:建议保留1-7天

Q5:PRO版本中任务级配置和全局配置的优先级是什么?

A:配置优先级从高到低为:

  1. 任务级配置(最高优先级)
  2. 全局配置(默认值7天)

Q6:PRO版本中两种清理策略可以同时使用吗?

A:可以。建议同时启用两种策略,确保存储空间得到有效控制。

Q7:清理策略什么时候生效?

A:配置保存后立即生效,系统会按照设定的策略自动进行日志清理。

Q8:如何从开源版本升级到PRO版本?

A:升级到PRO版本后,原有的全局配置会自动作为默认值保留,同时可以使用任务级配置功能。