我如何獲得log4j刪除舊的循環日誌文件?我知道我可以設置自動化作業(UNIX的cron和Windows的計劃任務),但我希望它跨平臺,我希望它在我們應用程序的日誌配置中作爲我們應用程序的一部分,而不是在操作系統之外的單獨代碼中特定的腳本語言。我們的應用程序不是用OS腳本語言編寫的,我不想在它們中做這部分。如何獲得log4j刪除舊的循環日誌文件?
50
A
回答
44
RollingFileAppender進行此操作。您只需將maxBackupIndex設置爲備份文件的最大值即可。
37
日誌旋轉是有原因的,所以你只能保存這麼多的日誌文件。在log4j.xml文件,你可以添加到您的節點:
<param name="MaxBackupIndex" value="20"/>
值告訴的log4j.xml到只保留大約20個旋轉的日誌文件。如果你想要甚至1,你可以將它限制爲5個。如果你的應用程序沒有記錄那麼多的數據,並且你有20個日誌文件跨越過去8個月,但你只需要幾周的日誌,那麼我認爲你需要調整你的log4j.xml「MaxBackupIndex」和「MaxFileSize」參數。
另外,如果您使用的是屬性文件(而不是XML)和要保存15個文件(例如)
log4j.appender.[appenderName].MaxBackupIndex = 15
+6
這是否適用於DailyRollingFileAppender? – rogerdpack 2014-03-27 17:44:30
7
沒有默認值來控制刪除由DailyRollingFileAppender創建的舊日誌文件。但是您可以編寫自己的自定義Appender,以與爲RollingFileAppender設置maxBackupIndex的方式非常相似的方式刪除舊日誌文件。
簡單的指令發現here
從1:
如果你想使用Apache Log4J的DailyRollingFileAppender爲每天的日誌文件,則可能需要要指定文件的最大數量即應被保存。就像滾動RollingFileAppender支持maxBackupIndex一樣。但是,如果您使用的是DailyRollingFileAppender,則當前版本的Log4j(Apache log4j 1.2.16)不提供任何刪除舊日誌文件的機制。我試圖在DailyRollingFileAppender的原始版本中進行小的修改以添加maxBackupIndex屬性。因此,可以清理未來使用時可能不需要的舊日誌文件。
相關問題
- 1. 滾動日誌文件和刪除舊的日誌文件
- 2. 刪除舊的日誌文件在AIX
- 3. 如何刪除Log4php中的舊日誌?
- 4. 如何刪除舊的JBoss日誌?
- 5. 如何刪除舊的log4net日誌文件?
- 6. Util日誌記錄不會刪除舊日誌文件輪流
- 7. 使用log4j刪除舊文件
- 8. Log4j - 日誌文件
- 9. 如何在日誌文件中獲取舊的日誌細節?
- 10. BAT文件從TXT文件中刪除舊的日誌條目
- 11. 如何獲得AWstats分析舊日誌文件?
- 12. log4j的 - 空日誌文件 -
- 13. 莫非無法刪除日誌文件中的Log4j在Java中
- 14. 如何使用log4j在日誌文件中獲取文件名?
- 15. 如何刪除MySQL日誌文件
- 16. 如何自動刪除日誌文件?
- 17. Log4j刪除後不重新創建日誌文件
- 18. 刪除OpenLDAP日誌文件
- 19. Powershell日誌刪除文件
- 20. log4j javax.mail.MessagingException日誌到文件
- 21. Log4j不寫日誌文件
- 22. 解析log4j日誌文件
- 23. Grails Log4j空日誌文件
- 24. 多個log4j日誌文件
- 25. log4j如何每天自動創建一個新的日誌文件而不需要歸檔舊日誌文件
- 26. 自動刪除舊的Python日誌文件
- 27. Log4j 2日誌正在寫入Log4j日誌文件
- 28. 如何在日誌文件log4j中只寫入INFO日誌?
- 29. 使用Log4j的日期日誌文件
- 30. 如何在日誌文件中獲得休眠日誌
有沒有辦法與DailyRollingFileAppender做到這一點? – 2012-07-16 18:21:23