windows下使用命令動態輸出tomcat日誌
轉自http://www.51testing.com/html/99/478599-843404.html
最近測試遇到一個問題,我們的專案使用windows2003伺服器,tomcat+oracle資料庫。專案中有兩個測試人員,經常需要檢視日誌定位問題,但是有兩個問題:
1.windows下tomcat輸出日誌跟linux下不一樣,linux可以遠端連線使用tail命令很輕鬆就可以看到日誌,並且可以隨時停止。但windows的日誌只輸入到控制檯,不輸出到日誌檔案。這就使得只有開著控制檯才能看得到日誌,而且不能ctrl+C停止擷取。 2.用遠端桌面連線的話,兩個測試人員不可能同時看得到控制檯,而若使用VNC,RADMIN等軟體,又會造成雙方操控很混亂。 所以就在想,要是能像linux那樣隨時檢視日誌又不用操控控制檯就好了。 解決思路: 1.讓tomcat日誌輸出到檔案。這個明顯可以實現的。 2.找個軟體能夠連線windows,並且使用命令動態檢視日誌檔案,比如tail。其實linux中的大多數命令windows也都有,只不過被介面封裝了,現在linux的廣大愛好者早就研發出了將windows命令轉為了相應的linux命令的軟體,所以也不成問題。 下面就開始尋找解決方法了: 1.讓tomcat日誌輸出到檔案 一般啟動tomcat時都用startup.bat,但又有多少人真正研究過這個bat檔案中到底暗藏什麼玄機呢?我們來看一下這個bat檔案。它使用call "%EXECUTABLE%" start %CMD_LINE_ARGS%這句話來呼叫catalina.bat啟動。這句話執行的命令就相當於控制檯輸入catalina.bat start。怎麼樣,是不是跟linux很像啦,不過這個start是會在新視窗中啟動catalina.bat,並將日誌檔案輸出到新視窗中,這顯然不是我們要的效果。我們將它改成call "%EXECUTABLE%" run %CMD_LINE_ARGS%。這樣控制檯就不會輸出日誌檔案了,讓catalina.bat去決定日誌輸出在哪裡吧。 那再來看一下catalina.bat。這裡我就直接引用網上的方法了:尋找以%ACTION%結尾的四處,在後面加上 >> %CATALINA_BASE%\logs\detailLog.%DATE:~0,10%.log detailLog是我自己起的名字,大家可以隨意更改,但是注意不要與預設日誌檔案衝突,否則啟動會報個錯,儘管無關緊要。那%DATE:~0,10%是用來擷取系統時間的。在我的伺服器上echo %DATE%,顯示出的是“2013-04-02 星期二”,擷取0-10位,也就是“2013-04-02”,所以今天產生的log檔名字應該是 detailLog.2013-04-02.log 這樣再去雙擊startup.bat,就會發現控制檯啟動後不再輸出日誌檔案。再去檢視detailLog.2013-04-02.log,會發現日誌都在裡面。 那下面的工作