Chainsaw 可以用來監控 JBoss 所使用的 Log4j,透過以下的設定,讓開啟 Chainsaw 的時候自動監聽。

設定 JBoss

首先找到

 {JBOSS_HOME}server{YOUR_SERVER_FOLDER}confjboss-log4j.xml
開啟之後在
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> ... </log4j:configuration>
之間增加一個 appender
 <appender name="SOCKET" class="org.apache.log4j.net.SocketHubAppender"> <param name="Port" value="8888"/> </appender>
最後底下的
 <root> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root>
變更為
 <root> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> <strong><appender-ref ref="SOCKET"/></strong> </root>
儲存之後重新啟動 JBoss。 接著透過 netstat -na ,你可以觀察到 TCP 0.0.0.0:8888 已經處於 LISTENING 的狀態。

設定 Chainsaw v2

假設 Chainsaw 目錄位置是 D:Downloadschainsaw-bundle,在所在目錄新增一個檔案 chainsaw-receiver.xml。 內容如下:

 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration > <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true"> <plugin name="JBoss" class="org.apache.log4j.net.SocketHubReceiver"> <param name="Port" value="8888"/> <param name="Host" value="127.0.0.1"/> </plugin> </log4j:configuration>
然後執行 Chainsaw,透過選單 View -> Show Application-wide Preferences

接著在 Automatic Configuration URL 的部份輸入:

 file:///d:/Downloads/chainsaw-bundle/chainsaw-receiver.xml
按下 OK 之後重新啟動 Chainsaw,視窗右列的部份就會自動使用設定的 Receiver 監聽 JBoss 的 log4j

參考

ChainsawAndSocketHubWalkthrough