我正在生成一個日誌文件,我想要的是我要定期讀取數據,而不必每次都從頭讀取數據。任何人都可以幫忙定期從日誌文件中讀取數據
回答
打開該文件,並有一個循環,
- 得到的大小和與您已經閱讀大小比較。
- 如果大小已經增長,請閱讀許多字節並且不再更多。這樣做意味着您可以稍後閱讀更多內容。
- 如果尺寸縮小,請關閉文件並重新開始。
您可以使用FileInputStream或RandomAccessFile。
是md5sum更合適,如果這是被接受的解決方案? –
@NehalDattani,你有什麼想法? –
這是一個很好的答案。 –
如果您想要運行一個程序來定期讀取您的日誌文件,那麼您可以使用調度程序 Quartz Scheduler來定期運行它。
使用unix命令'tail',選項'-f'和'-F'對於相同的命令也非常方便。
請看這裏http://www.thegeekstuff.com/2009/08/10-awesome-examples-for-viewing-huge-log-files-in-unix/的例子或只是谷歌周圍的例子。
我使用log4j生成日誌文件,我必須在java中讀取它。 – Rookie
似乎是類似的:http://stackoverflow.com/questions/557844/java-io-implementation-of-unix-linux-tail-f –
RandomAccessFile是一個不錯的選擇。如果您離開應用程序,您必須在離開前堅持上次讀取的位置,以避免重新讀取信息。
另一方面,日誌文件對於重大事件流程往往變得相當大。旋轉日誌文件可以讓你將問題轉向文件命名。你可以配置你的系統每天產生一個日誌文件喜歡這裏:
app_access.2011-11-28.log,
app_access.2011-11-29.log,
app_access.2011-11-30.log,
...
如果你得到的文件仍是非常大的,你可以按日期和時間旋轉他們,你也將有每小時的一部分文件名。然後你的文件可以旋轉,比方說,每三個小時甚至每一個小時。這會給你更多的日誌文件來讀取,但它們會更小,因此更容易處理。您要查找的日期和時間範圍將成爲文件名的一部分。
您還可以通過文件大小額外旋轉。如果您選擇可以處理的最大文件大小,則可以避免完全隨機訪問大型文件。
- 1. 從OpenXml Excel文件中讀取日期
- 2. 從文件名中讀取日期
- 3. 從csv文件中讀取Python日期
- 4. 從文件夾中讀取所有日誌文件
- 5. perl - 在特定日期從文件中提取數據
- 6. 從Java日誌文件中提取錯誤日期和消息
- 7. php讀取大文本文件日誌
- 8. 在Python中讀取日誌文件並輸出特定文本
- 9. 從XML文件讀取特定數據
- 10. 從日誌中提取數字數據
- 11. Revit日誌文件數據提取
- 12. 從bz2文件讀取日誌文件在objective-c
- 13. 如何從perl提取日誌文件中的數據
- 14. 從日誌文件中提取數據的正則表達式
- 15. 從txt文件中獲取日誌數據
- 16. 從文本文件中讀取數據
- 17. 從文本文件中讀取數據
- 18. 從文本文件中讀取數據
- 19. Crashlytics無法讀取日誌文件
- 20. Q/kdb +按塊讀取日誌文件
- 21. FastMM4,如何讀取日誌文件?
- 22. 使用PHP讀取IIS日誌文件
- 23. 從文件中讀取整數數據
- 24. 使用Python在日誌文件中讀取/寫入特定行
- 25. 從更新日誌文件中實時地逐行讀取
- 26. 使用Java從日誌文件中讀取Stacktrace
- 27. 從logstash旋轉日誌文件中讀取
- 28. 從日誌文件中讀取最後一行
- 29. 從.NET應用程序中讀取Confluence日誌文件
- 30. 從日誌文件中提取值
一個例子會有所幫助。 – Rookie
你已經完成的一個例子也會有所幫助。 ;) –