最近服務器(linux環境)日誌出現異常,通過反覆查找,問題獲得解決;linux
因爲出現故障的應用記錄日誌採用的是./log/xxxx.log方式,啓動服務路徑不一樣,日誌生成目錄會不一樣。服務器
如下是解決問題的步驟:測試
1)定位log4j jar包出現衝突spa
從故障表象來看,若是日誌組件沒法輸出日誌,通常先查找應用中是否存在相同的log4j包;(根據應用的織組方式不一樣,有可能存在多個應用同時部署,這個也是最難找,也是最麻煩的事情),通過定位,採用的log4j爲jboss應用包,因此不存在與其它應用中的log4j包衝突,只需查看是否jboss應用中有衝突包;(結果是沒有)日誌
2)定位log4j jar包版本及sl4j包是否匹配部署
通過詳細比對,及log4j jar包替換,從新啓動服務,仍然沒法輸出日誌(曾經一度想升級log4j到2.x版本,但關係到服務器穩定性,及存在大量其它應用調用,升級將致使很大的工做量,並且還須要通過新一輪詳盡測試才能部署到生產環境,因此在不徹底確定的狀況下,未進行升級);test
3)切換日誌組件爲絕對路徑變量
打開應用中的log4j.properties,發現記錄日誌文件的路徑爲相對路徑:./log/xxxx.log配置
將其修改成絕對路徑:/home/test/log/xxxx.log總結
從新啓動服務,日誌文件正常輸出到/home/test/log/文件夾下;
至此,問題雖然解決,但未發現因何致使,因此繼續查找故障源;
4)在不一樣目錄下進行啓動
在一個偶然的狀況下,本人忽然修改日誌文件爲相對路徑並切換目錄進行啓動;
原來在jboss/bin目錄下啓動,如今改成在/home/test/目錄下采用jboss/bin/run.sh進行啓動,結果可想而知了。。。
總結:
1,因爲每一個人啓動服務的方式不一樣,會致使日誌(./log)記錄目錄中的相對路徑變量發生改變;
2,在應用中儘可能採用絕對路徑進行配置,這樣不會因我的習慣不一樣而致使不一樣的問題;
3,若是擔憂絕對路徑給應用移植帶來不便,能夠採用${path}/log/xxx.log進行配置。