2017-01-17 116 views
1

我在Tomcat上部署的應用程序使用log4j寫入日誌文件。如果我刪除該文件,那麼該應用程序不會重新創建它。我也嘗試手動重新創建它,但它始終是空的。有什麼辦法可以刪除日誌文件(不是從應用程序),在同一個路徑中創建一個具有相同名稱的新日誌文件,並且它可以由應用程序編寫?Log4j刪除後不重新創建日誌文件

+1

爲什麼你需要這個? – Jens

+0

@Jens因爲它是另一個程序,如果它在2天內沒有寫入,就會刪除日誌文件。 – abaraza

+0

這使得感覺? – Jens

回答

0

有什麼辦法可以刪除日誌文件(不是從應用程序),在相同的路徑中創建一個新名稱,並且它可以由應用程序寫入?

沒有。您需要讓應用程序本身重新開始記錄。

問題是,log4j appender仍然有一個處理刪除的文件,並將繼續寫入它...不知道它已被刪除。

更好的方法是讓應用程序本身負責「旋轉」日誌文件。查看classes實現log4j Appender接口的一些想法。

+0

雖然這樣,但我仍然有希望有任何解決方法......無論如何,謝謝你。 – abaraza

+0

好吧,有可能。例如,您可以編寫一個自定義附加選項,檢查每次嘗試寫入之前日誌文件是否存在。但它醜陋而且效率低下,應用程序需要改變以使其工作。 –