2012-03-21 184 views
0

我想在我的應用程序中使用Log4J,但我的問題是我想運行此應用程序的機器沒有給我寫入本地驅動器的權限。但Log4J不會拋出任何錯誤,它只是跳過日誌記錄。Log4J - 確定記錄器是否無法寫入文件系統

所以我想要做的是編寫一些代碼,如果Log4J不能寫入本地文件系統,它會在我的應用程序中返回一些反饋/消息。有沒有辦法告訴Log4J能否從Log4J本身寫入本地文件系統?或者有什麼方法可以確定Log4J在每個操作中將多少個單詞寫入其日誌文件?這樣我才能確定是否實際記錄日誌,然後採取適當的措施。

回答

2

讓你從網站

號log4j的是不可靠的讀取FAQ

報價。這是一個盡力而爲的故障停止記錄系統。

通過失敗停止,我們的意思是log4j不會在運行時拋出意外的異常 ,這可能會導致應用程序崩潰。如果對於任何 原因,log4j會拋出未捕獲的異常,請發送電子郵件至 [email protected]郵件列表。未捕獲的異常 被視爲需要立即關注的嚴重錯誤。

即使記錄失敗,我更喜歡我的應用程序繼續。

你所描述的可能是'應用程序監控'的一個功能。有許多工具可以查看特定的文件系統是否已滿或者目錄/文件暫時沒有改變等。

話雖如此,您可以在應用程序的開始時進行基本檢查 - 如創建文件的權限在用於記錄的目錄中。

+0

如果您進一步閱讀......「但是,log4j會向System.err輸出一條消息,指示無法執行日誌記錄。」 – jahroy 2012-03-21 06:17:34

+0

感謝您的迴應。我的意思是,是否有任何方法可以讓我得到這個信息,即無法執行日誌記錄。如果有的話,請給我一些建議。 @jahroy所以我可以得到那個log4j發送給System.err的消息!它可能聽起來很愚蠢的問題,但我不知道如何從System.err獲取值...謝謝! – 2012-03-21 06:39:14

相關問題