天天看點

Tomcat下使用Log4j 接管 catalina.out 日志檔案生成方式:

我們知道,tomcat預設使用java.util.logging進行日志列印,并且LINUX預設都将應用日志列印在catalina.out。當系統長期運作,我們就會發現問題:catalina.out日志量越來越大,對我們檢視和管理都極其不便。(預設tomcat的catalina日志不支援每天一個檔案那種配置)

解決以上問題有幾種思路,網上讨論得較多的就是日志切割,如通過cronolog工具進行日切。我認為這種方式治标不治本,不夠靈活。我們web項目通常都會使用log4j進行日志列印,并且log4j本身就支援按日(按月/按小時/按分鐘等)列印日志,還有豐富的配置,幹嘛不用?而且隻需要對tomcat配置稍加修改即可實作。

1)準備jar包:

log4j-1.2.17.jar(從 ​​http://www.apache.org/dist/logging/log4j/1.2.17/​​下載下傳)

tomcat-juli.jar,tomcat-juli-adapters.jar (從 ​​ http://www.apache.org/dist/tomcat/tomcat-7/v7.0.52/bin/extras/​​下載下傳,根據你的Tomcat版本選擇對應的分支)

2)将上面的三個jar包拷貝到 Tomcat 的 lib 目錄下;将 tomcat-juli.jar 再拷貝到 Tomcat 的bin 目錄下,替換原有的jar包;

3)修改 Tomcat 的 conf/context.xml檔案,将<Context>為<Context swallowOutput="true">

(增加swallowOutput="true" 的屬性配置,隻有這樣才能完全的把tomcat的stdout給接管過來。這一步很關鍵在官網及網上找了許多資料都沒有提及。);

4)删除 Tomcat 的 conf/logging.properties檔案(或者重命名-建議);

繼續閱讀