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

Apache ActiveMQ Artemis PeriodicRotatingFileHandler每日日志配置求助

解决Apache ActiveMQ Artemis每日自动生成新日志文件的问题

我来帮你搞定这个日志滚动的问题——你遇到的情况很常见,核心原因是标准的PeriodicRotatingFileHandler在Artemis运行时没法自动检测日期变化并触发日志滚动,而Artemis本身提供了定制的处理器来解决这个问题。

下面是经过验证的logging.properties配置示例,能实现每日自动生成新的artemis.log文件(旧日志会以日期后缀归档):

# 根日志级别,可根据需求调整为DEBUG/FINE等
.level=INFO

# 配置日志处理器:控制台输出 + Artemis定制的周期性滚动文件处理器
handlers=java.util.logging.ConsoleHandler, org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler

# 控制台处理器配置(可选,不需要可以删除这部分)
java.util.logging.ConsoleHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=org.apache.activemq.artemis.utils.DefaultFormatter

# --- 核心:Artemis周期性滚动日志配置 ---
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.level=INFO
# 使用Artemis默认的日志格式,也可以自定义
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.formatter=org.apache.activemq.artemis.utils.DefaultFormatter
# 当前日志文件的路径,${artemis.instance}是Artemis的实例目录变量,也可以写绝对路径
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.fileName=${artemis.instance}/log/artemis.log
# 旧日志的命名后缀,格式为yyyy-MM-dd,归档后文件名如artemis.log.2024-05-20
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.suffix=.yyyy-MM-dd
# 滚动规则:每天自动滚动一次
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.rotation=DAILY
# 日志追加模式,避免覆盖已有内容
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.append=true
# 可选:自动删除超过7天的旧日志,防止磁盘溢出
org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler.maxDays=7

关键配置说明

  1. 使用Artemis定制处理器:一定要用org.apache.activemq.artemis.core.server.logging.ActiveMQPeriodicRotatingFileHandler,而不是JDK标准的PeriodicRotatingFileHandler。这个定制处理器和Artemis的运行时深度集成,能准确在日期变更时触发日志滚动,不需要重启服务。
  2. rotation=DAILY:明确指定每日滚动,这是触发自动生成新日志的核心参数。
  3. suffix格式:定义旧日志的归档命名规则,方便按日期查找历史日志。
  4. maxDays:可选参数,自动清理过期日志,建议根据你的磁盘空间配置合适的天数。

注意事项

  • 确保Artemis运行用户对日志目录有写入权限,否则日志滚动会失败。
  • 如果${artemis.instance}变量不生效,直接替换为你的Artemis实例的绝对路径(比如/opt/apache-artemis-2.32.0/instances/mybroker/log/artemis.log)。
  • 第一次配置完成后需要重启一次服务让新的日志处理器生效,之后每天都会自动滚动日志,无需再手动重启。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 09:02:31