要在ActiveMQ上实时查看日志,可以使用以下方法:
import javax.management.*;
import java.util.Set;
public class ActiveMQLogViewer {
public static void main(String[] args) throws Exception {
// 创建一个连接到ActiveMQ的JMX连接
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi");
JMXConnector connector = JMXConnectorFactory.connect(url);
MBeanServerConnection connection = connector.getMBeanServerConnection();
// 获取所有的日志MBean
Set logMBeans = connection.queryNames(new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost,service=Logging"), null);
// 打印每个日志MBean的日志信息
for (ObjectName logMBean : logMBeans) {
Object logLevel = connection.getAttribute(logMBean, "Level");
Object logFile = connection.getAttribute(logMBean, "CurrentLogFileName");
System.out.println("Log Level: " + logLevel + ", Log File: " + logFile);
}
// 关闭JMX连接
connector.close();
}
}
# Root logger option
log4j.rootLogger=DEBUG, stdout
# 输出到控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%-5p] %c - %m%n
# ActiveMQ日志
log4j.logger.org.apache.activemq=DEBUG
这样配置之后,启动ActiveMQ,日志将会被输出到控制台上。
通过以上两种方法,可以实时查看ActiveMQ的日志信息。