从Logcat打印最后200行

时间:2012-07-27 16:50:14

标签: java android

我正在尝试在我的应用中打印Android Logcat中的最后200行。 到目前为止,我已经能够使用InputStreamReader将Logcat导入BufferedReader。问题是我不知道如何跳到缓冲读取器的末尾,然后向后读,或跳到最后200行的正上方并从那里打印。 我不想做蛮力方法,我读了整个日志。我希望有一个更优雅的解决方案。

感谢。

2 个答案:

答案 0 :(得分:2)

BufferedReader不知道一行的概念,只知道数据流。如果您不知道线路的长度,您将很难找到跳转到(EOF - 200线)的方法。

我建议在它之后填充一个RingBuffer,存储200行,最新的替换最旧的。这样,BufferedReader继续填充ringBuffer并使用它来读取。

另一种选择是每200行清除一次日志......

答案 1 :(得分:1)

所以这不是我想要的解决方案,而是做我想要的。而不是将日志带入BufferedReader,然后将其排序并打印出来。我使用logcat标签来指定输出文件的大小。

Runtime.getRuntime.exec("logcat -r 160 -f mylog.log")

然后回读文件。