Chainsaw 可以用來監控 JBoss 所使用的 Log4j,透過以下的設定,讓開啟 Chainsaw 的時候自動監聽。
設定 JBoss
首先找到
1 | {JBOSS_HOME}server{YOUR_SERVER_FOLDER}confjboss-log4j.xml |
開啟之後在
1 | <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> ... </log4j:configuration> |
之間增加一個 appender
1 | <appender name="SOCKET" class="org.apache.log4j.net.SocketHubAppender"> <param name="Port" value="8888"/> </appender> |
最後底下的
1 | <root> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> |
變更為
1 | <root> <appender-ref ref="CONSOLE"/> <appender-ref ref=大专栏 Monitoring JBoss logfile with Chainsaw v2span class="s">"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。 內容如下:
1 | <?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 的部份輸入:
1 | file:///d:/Downloads/chainsaw-bundle/chainsaw-receiver.xml |
按下 OK 之後重新啟動 Chainsaw,視窗右列的部份就會自動使用設定的 Receiver 監聽 JBoss 的 log4j
參考
ChainsawAndSocketHubWalkthrough