Tomcat日志、項目中的log4j日志、e.printStackTrace()——我的日志最后到底跑哪去了?


1、Tomcat自帶日志功能,即時你的項目中有log4j也不會影響到Tomcat自己記錄日志。

2、你的項目中的log4j中的日志指定打印到什么地方(控制台或者文件),便會打印到什么地方,和Tomat日志無關。

——如果你項目中的log4j指定打印到控制台,並且你開啟的tomcat有控制台,那么這個時候你可以在控制台觀察到日志。

——如果你用log4j來處理了Tomcat的日志(具體需要你自己配置tomcat的配置文件),那么Tomcat便會使用log4j來打印,但是這和你項目中的log4j仍然不是同一個log4j。

3、關於異常日志的打印

如果你在你的項目中處理了某個異常:

        try {
            int i = 1/0; }catch(Exception e) { e.printStackTrace(); }

  A、那么這個異常信息會打印到你的控制台。你說你沒有開控制台,是用服務的形式跑的?那么這個異常的信息你就看不見了。

  B、你在你的項目中直接throw的,並且沒有任何地方處理這個異常,那么最后這個異常會被拋給你的容器——Tomcat,Tomcat這時會在localhost.日期.log文件中記錄這個異常。

  C、你使用的是log4j:

LogFactory.getLog(Logger.class).error("Thread:"+i+"-print:"+j+"-CurrentThread:"+Thread.currentThread());

  那么你應該去看看你的log4j配置文件中,看看里面寫的要把這條錯誤信息打印在哪。

  ——如果是打印到控制台,那么就去控制台找。如果沒有控制台,那么這個錯誤信息也就丟了。

  ——如果是寫入某個文件,那當然就是在你的文件中了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM