我們有幾個運行在這裏的java應用程序服務器,有幾個應用程序。他們都將Log4J記錄到同一個文件系統中,我們只是爲此創建了這個文件系統。 不時碰巧的是,文件系統運行的空間和應用得到Log4J能夠從磁盤恢復完整?
log4j:ERROR Failed to flush writer,
java.io.IOException
不幸的Log4J沒有從錯誤中恢復,所以,即使在空間在文件系統中,沒有更多的日誌中解脫出來是從該應用程序寫入。除了重新啓動應用程序之外,是否有任何選擇,以編程方式或設置方式讓Log4J再次運行?
從我從http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/helpers/OnlyOnceErrorHandler.html中收集到的錯誤一次拋出,之後就結束了。我所希望的是,儘管錯誤只出現一次,appender仍會繼續嘗試寫入該文件系統...也許需要5分鐘的暫停......它似乎是一個圍繞appender的包裝器,它是一個可行的想法 – dertoni 2009-08-27 10:04:10
如果您使用的是OnlyOnceErrorHandler,則可以考慮使用FallbackErrorHandler(http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/varia/FallbackErrorHandler.html)。這樣,你可以指定第二個appender(也許是電子郵件appender),當第一個appender不能再寫的時候。這將處理很多包裝會做的事情。 – GaryF 2009-08-27 12:16:31