如何變更記錄
常見問題 > 使用 Apache ActiveMQ Classic > 如何變更記錄
如何變更記錄
我們使用 slf4j 在訊息代理客戶端和訊息代理本身記錄資訊,因此您可以完全設定要使用的記錄等級,以及是否要記錄到檔案或控制台等。如需更多資訊,請參閱 log4j 手冊。
您可以透過編輯 conf/log4j.properties 檔案,停用 activemq 的所有 INFO 等級記錄,方法是新增此行來停用 ActiveMQ Classic 記錄
log4j.logger.org.apache.activemq=WARN
或完全停用 stdout 記錄,請變更此行
log4j.rootLogger=INFO, stdout, out
為
log4j.rootLogger=INFO, out
如何在執行期間變更記錄?
ActiveMQ Classic 中的預設記錄等級為 INFO。這可以透過在終端機中啟動預設的 ActiveMQ Classic 二進制檔來查看。如此一來,您將會看到如下所示的輸出
$ ./bin/activemq
ACTIVEMQ_HOME: /Users/bsnyder/amq/apache-activemq-5.1.0
ACTIVEMQ_BASE: /Users/bsnyder/amq/apache-activemq-5.1.0
Loading message broker from: xbean:activemq.xml
INFO BrokerService - Using Persistence Adapter: AMQPersistenceAdapter(/Users/bsnyder/amq/apache-activemq-5.1.0/data)
INFO BrokerService - ActiveMQ 5.1.0 JMS Message Broker (localhost) is starting
INFO BrokerService - For help or more information please see: https://activemq.dev.org.tw/
INFO AMQPersistenceAdapter - AMQStore starting using directory: /Users/bsnyder/amq/apache-activemq-5.1.0/data
INFO KahaStore - Kaha Store using data directory /Users/bsnyder/amq/apache-activemq-5.1.0/data/kr-store/state
INFO AMQPersistenceAdapter - Active data files: []
INFO KahaStore - Kaha Store using data directory /Users/bsnyder/amq/apache-activemq-5.1.0/data/kr-store/data
INFO TransportServerThreadSupport - Listening for connections at: tcp://mongoose.local:61616
INFO TransportConnector - Connector openwire Started
INFO TransportServerThreadSupport - Listening for connections at: ssl://mongoose.local:61617
INFO TransportConnector - Connector ssl Started
INFO TransportServerThreadSupport - Listening for connections at: stomp://mongoose.local:61613
INFO TransportConnector - Connector stomp Started
INFO TransportServerThreadSupport - Listening for connections at: xmpp://mongoose.local:61222
INFO TransportConnector - Connector xmpp Started
INFO NetworkConnector - Network Connector default-nc Started
INFO BrokerService - ActiveMQ JMS Message Broker (localhost, ID:mongoose.local-56138-1224025139259-0:0) started
INFO log - Logging to org.slf4j.impl.JCLLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
INFO log - jetty-6.1.9
INFO WebConsoleStarter - ActiveMQ WebConsole initialized.
INFO /admin - Initializing Spring FrameworkServlet 'dispatcher'
INFO log - ActiveMQ Console at http://0.0.0.0:8161/admin
INFO log - ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO log - RESTful file access application at http://0.0.0.0:8161/fileserver
INFO log - Started SelectChannelConnector@0.0.0.0:8161
INFO FailoverTransport - Successfully connected to tcp://localhost:61616
但是,停止 ActiveMQ Classic 來變更記錄等級並非總是可行。在許多情況下,可能需要在執行期間變更記錄等級和其他組態詳細資訊。使用像是 jconsole 的 JMX 工具,可以變更並重新載入記錄組態檔案,而無需關閉 ActiveMQ Classic。
若要在 ActiveMQ Classic 執行時將 ActiveMQ Classic 記錄等級從 INFO 變更為 DEBUG,請啟動 jconsole,指向 ActiveMQ Classic 執行個體,然後導覽至如下所示的 Broker 物件的「操作」索引標籤
若要在 ActiveMQ Classic 中啟用除錯等級記錄,請編輯屬於 ActiveMQ Classic 二進制發行套件一部分的 conf/log4j.properties
檔案,以停用 INFO 等級記錄並啟用 DEBUG 等級記錄,從這裡
log4j.rootLogger=INFO, stdout, out
log4j.logger.org.apache.activemq.spring=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.xbean.spring=WARN
# When debugging or reporting problems to the ActiveMQ team,
# comment out the above lines and uncomment the next.
#log4j.rootLogger=DEBUG, out, stdout
到這裡
#log4j.rootLogger=INFO, stdout, out
log4j.logger.org.apache.activemq.spring=WARN
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.xbean.spring=WARN
# When debugging or reporting problems to the ActiveMQ team,
# comment out the above lines and uncomment the next.
log4j.rootLogger=DEBUG, out, stdout
請注意,log4j.rootLogger=INFO, stdout, out
行已註解掉,而 log4j.rootLogger=DEBUG, out, stdout
行已取消註解。儲存此變更,然後在 jconsole 中,按一下名為 reloadLog4jProperties 的按鈕,如下所示
按一下 reloadLog4jProperties 按鈕後,會彈出一個對話方塊,指出「方法已成功叫用」。這只是讓您知道已叫用 reloadLog4jProperties
方法來重新載入 conf/log4j.properties
檔案。現在請注意,在執行 ActiveMQ Classic 的終端機中,輸出的記錄現在為 DEBUG
INFO WebConsoleStarter - ActiveMQ WebConsole initialized.
INFO /admin - Initializing Spring FrameworkServlet 'dispatcher'
INFO log - ActiveMQ Console at http://0.0.0.0:8161/admin
INFO log - ActiveMQ Web Demos at http://0.0.0.0:8161/demo
INFO log - RESTful file access application at http://0.0.0.0:8161/fileserver
INFO log - Started SelectChannelConnector@0.0.0.0:8161
INFO FailoverTransport - Successfully connected to tcp://localhost:61616
DEBUG InactivityMonitor - 10000 ms elapsed since last write check.
DEBUG InactivityMonitor - 10000 ms elapsed since last write check.
DEBUG AbstractRegion - Removing consumer: ID:mongoose.local-56517-1224026019987-0:0:-1:1
DEBUG AbstractRegion - Removing consumer: ID:mongoose.local-56511-1224026011897-0:0:1:1
DEBUG TransportConnection - Stopping connection: /127.0.0.1:56518
DEBUG TcpTransport - Stopping transport tcp:///127.0.0.1:56518
DEBUG TransportConnection - Stopped connection: /127.0.0.1:56518
DEBUG TransportConnection - Connection Stopped: /127.0.0.1:56518
DEBUG AbstractRegion - Removing consumer: ID:mongoose.local-56511-1224026011897-0:0:-1:1
DEBUG TransportConnection - Stopping connection: /127.0.0.1:56512
DEBUG TcpTransport - Stopping transport tcp:///127.0.0.1:56512
DEBUG TransportConnection - Stopped connection: /127.0.0.1:56512
DEBUG TransportConnection - Connection Stopped: /127.0.0.1:56512
DEBUG InactivityMonitor - 9999 ms elapsed since last write check.
DEBUG InactivityMonitor - 10000 ms elapsed since last write check.
DEBUG InactivityMonitor - 29999 ms elapsed since last read check.
停用 DEBUG
等級記錄並啟用 INFO
等級記錄,方法是編輯 log4j.properties
檔案並再次按一下 reloadLog4jProperties 按鈕。