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

如何为ActiveMQ Classic 5.15.2各TransportConnector配置独立端口日志?

针对ActiveMQ Classic 5.15.2 按TransportConnector拆分日志的配置方案

ActiveMQ 5.15.2基于Log4j 1.x实现日志管理,要按端口/Connector拆分连接相关日志,需通过自定义Log4j Appender+内容过滤实现,具体步骤如下:

1. 修改Log4j配置文件

编辑ActiveMQ安装目录下conf/log4j.properties文件:

1.1 添加独立的日志Appender

分别为NIO(61616)和STOMP(61617)连接器定义专属的滚动文件Appender:

# NIO连接器日志Appender
log4j.appender.NIO=org.apache.log4j.RollingFileAppender
log4j.appender.NIO.File=${activemq.base}/data/61616-nio.log
log4j.appender.NIO.MaxFileSize=10MB
log4j.appender.NIO.MaxBackupIndex=5
log4j.appender.NIO.layout=org.apache.log4j.PatternLayout
log4j.appender.NIO.layout.ConversionPattern=%d{ISO8601} | %-5p | %t | %c | %m%n

# STOMP连接器日志Appender
log4j.appender.STOMP=org.apache.log4j.RollingFileAppender
log4j.appender.STOMP.File=${activemq.base}/data/61617-stomp.log
log4j.appender.STOMP.MaxFileSize=10MB
log4j.appender.STOMP.MaxBackupIndex=5
log4j.appender.STOMP.layout=org.apache.log4j.PatternLayout
log4j.appender.STOMP.layout.ConversionPattern=%d{ISO8601} | %-5p | %t | %c | %m%n

1.2 为Appender添加内容过滤规则

通过StringMatchFilter筛选对应连接器的日志内容,只保留包含端口号或连接器名称的日志:

# NIO Appender过滤规则:匹配61616或nio关键字
log4j.appender.NIO.filter.1=org.apache.log4j.varia.StringMatchFilter
log4j.appender.NIO.filter.1.StringToMatch=61616
log4j.appender.NIO.filter.1.AcceptOnMatch=true
log4j.appender.NIO.filter.2=org.apache.log4j.varia.StringMatchFilter
log4j.appender.NIO.filter.2.StringToMatch=nio
log4j.appender.NIO.filter.2.AcceptOnMatch=true
log4j.appender.NIO.filter.3=org.apache.log4j.varia.DenyAllFilter

# STOMP Appender过滤规则:匹配61617或stomp关键字
log4j.appender.STOMP.filter.1=org.apache.log4j.varia.StringMatchFilter
log4j.appender.STOMP.filter.1.StringToMatch=61617
log4j.appender.STOMP.filter.1.AcceptOnMatch=true
log4j.appender.STOMP.filter.2=org.apache.log4j.varia.StringMatchFilter
log4j.appender.STOMP.filter.2.StringToMatch=stomp
log4j.appender.STOMP.filter.2.AcceptOnMatch=true
log4j.appender.STOMP.filter.3=org.apache.log4j.varia.DenyAllFilter

1.3 关联日志输出类并关闭日志传递

将负责输出连接日志的类绑定到对应Appender,并关闭日志的向上传递(避免重复输出到root日志):

# 连接相关日志的核心输出类
log4j.logger.org.apache.activemq.broker.TransportConnection=INFO, NIO, STOMP, stdout
log4j.logger.org.apache.activemq.transport.nio=INFO, NIO, stdout
log4j.logger.org.apache.activemq.transport.stomp=INFO, STOMP, stdout

# 关闭日志向上传递,避免重复输出到root日志文件
log4j.additivity.org.apache.activemq.broker.TransportConnection=false
log4j.additivity.org.apache.activemq.transport.nio=false
log4j.additivity.org.apache.activemq.transport.stomp=false

2. 重启ActiveMQ服务

执行以下命令重启服务使配置生效:

cd /path/to/activemq/bin
./activemq stop
./activemq start

验证效果

  • 连接61616端口时,data/61616-nio.log会记录连接建立/失败、错误/警告日志
  • 连接61617端口时,data/61617-stomp.log会记录对应日志

注意事项

  • 若需调整日志级别(如DEBUG),可将配置中的INFO改为对应级别
  • 确保ActiveMQ进程对data目录有读写权限
  • 该方案依赖Log4j 1.x的Filter特性,5.15.2版本原生支持,无需额外依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:33:13