2010-11-18 41 views
0

我不得不在tomcat 6中部署的web應用中使用自定義閉源lib。它通過我的stdout日誌(catalina.out)記錄了很多異常printStackTrace,然後重新推出它們以供我處理。有沒有辦法阻止或重新路由記錄webapp中部署的特定包的異常?如何從tomcat中部署的特定包中記錄異常

回答

1

如何調用該段在try/catch段內,從而捕捉異常您的應用程序死之前,將其添加到log4j的(或任何其他記錄機制)

+0

我正在緩存它們(我必須,它們不是運行時異常),並且它們不會在我處理(忽略)它們時終止該應用程序。這只是他們被髮送到我的tomcat日誌通過printStackTrace(我的猜測至少)在圖書館之前,他們被扔給我。我不希望他們在那裏,不能改變(閉源)。他們只是佔用了我的catalina.out,因爲我每天大約有300人因此難以找到真正能夠殺死我的應用程序的例外。 – mineralko 2010-11-18 23:32:49

2

e.printStackTrace打印類似於System.err的控制檯

在Tomcat中,catalina.sh包含此行,它將所有控制檯錯誤重定向到catalina.out 這適用於Tomcat服務器的整體。

"$CATALINA_BASE"/logs/catalina.out 2>&1 & 

因此,在短期,如果您使用的源代碼斜面鼓搗使用log4j的,你可以嘗試下的catalina.sh中發送此到另一個文件,但同樣只要你想這不會是特定的包。

而這隻會以類似的方式膨脹另一個文件。