为什么logcat会消耗消息

时间:2013-01-28 22:03:36

标签: android eclipse logcat

当我测试我的Android应用程序时,我会记录显示在LogCat上的消息。但是消息很快就会从窗口顶部流出,因此无法快速读取它们。

我该怎么办?

5 个答案:

答案 0 :(得分:3)

logcat窗口中有一个滚动锁,可用于暂停打印输出片刻。

要获取完整的logcat消息,您可以将它们重定向到文件:

adb logcat >& output.log

答案 1 :(得分:2)

这在某种程度上取决于你所说的“排水”。如果问题只是消息滚动太快而您需要停止自动滚动到底部,则可以在IDE(或DDMS / Monitor)中暂停此功能。如何暂停它取决于您的IDE,在IntelliJ中您只需单击日志输出中的某个位置放置光标,而在Eclipse中,logcat窗口上方有一个按钮可暂停输出滚动(不要忘记将其转回在或你不会看到新消息。)

但是,如果您的问题是记录了如此多的数据,即使滚动暂停,也无法向上滚动以查看所需内容,您需要记录更少的数据。这是因为Android logcat驱动程序是一个固定大小的64KB循环内存缓冲区。因此,如果您记录了足够的数据,它将开始覆盖日志中的旧条目,它们将在您有机会阅读之前消失。

答案 2 :(得分:0)

有一些方法:

  1. 禁用自动滚动功能。单击“Scroll Lock”按钮禁用此功能。
  2. 使用命令行工具。运行“adb logcat | less”,您可以导航结果。您也可以运行“adb logcat> logcat.txt”并在此之后检查logcat.txt。

答案 3 :(得分:0)

为什么不过滤logcat,因此它会显示您最感兴趣的内容。

您可以使用以下语法仅显示您感兴趣的标签(使用命令行中的adb工具 - 也可在Eclipse的logcat视图中使用):

adb logcat TAGTOSHOW:* TAGTOSHOW2:* *:s

您可以根据需要添加任意数量的TAG组合。不要忘记让所有其他人保持沉默的* .s。

答案 4 :(得分:0)

我更喜欢发球到文件:

adb logcat | tee foo.log | grep "YOUR_TAG_OF_INTEREST"

通过这种方式,您可以在终端窗口中获​​得您认为正在寻找的任何内容,但是如果您需要查看完整日志,则可以将它们保存在文件中。