當我們的應用程序拋出我們捕獲的錯誤時,我們將消息和堆棧跟蹤放入專門爲我們的應用程序(myapp.log)創建的日誌文件中。例如:在Web容器中使用log4j(J2EE服務器的一部分)
public class SomeClass {
OurLogger log = OurLogger.getLogger ("myapp", SomeClass.class);
public void someMethod {
try {
//code
}
catch (DataAccessException e)
{
log.error(e.getMessage(), e);
}
}
}
我們這樣做是因爲,因爲我們是在多個應用駐留在應用服務器上的環境......我們和所有其他應用程序日誌,應當從server.log
獨立。
但是,對於某些情況下,我們沒有發現錯誤...堆棧跟蹤正在寫入server.log
在這些情況下,我們還想將堆棧錯誤發送到myapp.log
。我知道我們可以在web.xml中定義一個異常並轉發到一個jsp頁面,但在這種情況下,有沒有辦法將堆棧跟蹤發送到server.log
,而不是發送到myapp.log
?除了通過代碼更改捕捉異常。
您使用的是什麼應用程序服務器? – 2009-11-25 20:21:16
glassfish v2。但我們有一個處理服務器配置的組。所以對我來說,不容易讓他們做出改變..除非我可以支持:) – Omnipresent 2009-11-25 20:36:22
好的。順便說一句,GlassFish使用Java日誌記錄(而不是log4j)。 – 2009-11-25 21:13:06