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

Apache Artemis 2.17 日志轮转配置不生效与启动异常排查

配置错误原因
  1. 你当前使用的org.jboss.logmanager.handlers.PeriodicRotatingFileHandler是纯时间周期轮转的日志处理器,本身仅支持按时间规则轮转,不提供rotateSize、maxBackupIndex、rotateOnBoot这类大小轮转相关的属性,所以启动时会抛出No property "rotateSize" setter found的异常。
  2. 你之前配置的大小轮转规则未生效,也是因为该处理器本身不支持按大小触发轮转,同时官方文档也明确说明max-backup-index仅对大小轮转策略生效,时间轮转模式下无法通过该配置自动清理历史日志。
实现预期日志轮转效果的方案

你需要实现「每小时轮转一次、仅保留最近3份日志、自动清理旧日志」的需求,可选择以下两种方案:

方案1:更换支持双规则轮转的日志处理器

将日志处理器更换为org.jboss.logmanager.handlers.PeriodicSizeRotatingFileHandler,该处理器同时支持时间周期+文件大小两种轮转规则,调整后的FILE处理器配置如下:

# File handler configuration
handler.FILE=org.jboss.logmanager.handlers.PeriodicSizeRotatingFileHandler
handler.FILE.level=DEBUG
handler.FILE.properties=suffix,append,autoFlush,fileName,rotateSize,maxBackupIndex,rotateOnBoot
# 按每小时轮转配置后缀
handler.FILE.suffix=.yyyy-MM-dd-HH
# 若不需要按大小触发轮转,可设置超大阈值避免大小轮转触发,示例为100GB
handler.FILE.rotateSize=107374182400
handler.FILE.maxBackupIndex=3
handler.FILE.rotateOnBoot=true
handler.FILE.append=true
handler.FILE.autoFlush=true
handler.FILE.fileName=${artemis.instance}/log/artemis.log
handler.FILE.formatter=PATTERN

如果审计日志也需要同样的轮转规则,同步修改AUDIT_FILE处理器的配置即可。

方案2:使用系统logrotate工具管理日志

无需修改Artemis本身的日志配置,直接使用Linux系统自带的logrotate工具实现日志轮转与清理,新增配置文件/etc/logrotate.d/artemis,内容参考如下:

<你的Artemis实例路径>/log/artemis.log <你的Artemis实例路径>/log/audit.log {
    hourly
    rotate 3
    missingok
    notifempty
    copytruncate
    compress
}

该配置会每小时执行一次轮转,保留最近3份日志,自动压缩并清理超出数量的旧日志。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:45:04