You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JBoss EAP 7.3中PeriodicSizeRotatingFileHandler未删除跨日旧日志求助

解决periodic-size-rotating-file-handler跨日日志不删除的问题

你遇到的问题根源在于periodic-size-rotating-file-handler的max-backup-index仅对当日生成的备份文件生效,跨日后的旧日期日志文件不会被纳入该计数范围,因此不会自动删除。以下是两种可行的解决办法:

方案一:改用size-rotating-file-handler

如果不需要按日期后缀归档日志,仅需按文件大小和总备份数量保留最新日志,直接替换为size-rotating-file-handler即可。这个处理器会统计所有备份文件的总数,超过max-backup-index时自动删除最旧的文件,跨日场景也能正常工作。

配置示例:

<size-rotating-file-handler name="FILE" autoflush="true">
  <formatter>
    <named-formatter name="PATTERN"/>
  </formatter>
  <file relative-to="jboss.server.log.dir" path="server.log"/>
  <rotate-size value="10k"/>
  <max-backup-index value="5"/>
  <append value="true"/>
</size-rotating-file-handler>

方案二:保留日期后缀+脚本定期清理

若必须保留带日期后缀的日志格式,可通过外部脚本定期清理旧日志,确保总文件数不超过预期。

示例Linux脚本(可加入crontab每日执行)

# 切换到JBoss日志目录
cd /path/to/your/jboss/server/log/dir

# 保留最新的5个日志文件(包含当日的),删除更早的
ls -t server.log.* | tail -n +6 | xargs rm -f

如果需要同时结合日期过期和数量限制:

cd /path/to/your/jboss/server/log/dir

# 删除7天前的日志文件
find . -name "server.log.*" -mtime +7 -delete

# 确保总日志文件数不超过5个
ls -t server.log.* | tail -n +6 | xargs rm -f

内容的提问来源于stack exchange,提问作者josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:25:17