我正在生成一个日志文件,我想要的是我要定期读取数据,而不必每次都从头读取数据。任何人都可以帮忙定期从日志文件中读取数据
回答
打开该文件,并有一个循环,
- 得到的大小和与您已经阅读大小比较。
- 如果大小已经增长,请阅读许多字节并且不再更多。这样做意味着您可以稍后阅读更多内容。
- 如果尺寸缩小,请关闭文件并重新开始。
您可以使用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
你已经完成的一个例子也会有所帮助。 ;) –