由于其他不需要的输出充斥 logcat,我的应用程序的 logcat 输出不断消失

S B*_*S B 5 eclipse android logcat

在 Moto G 上开发我的应用程序时,我经常遇到数以万计的以下消息充斥日志。

E/MM_OSAL (  275): isSamePayload Sync byte(0x47) not found!! m_nCurrOffset=0
E/MM_OSAL (  275): isSamePayload Sync byte(0x47) not found!! m_nCurrOffset=0
... repeated 20000 times in a span of 12 secs
D/WifiStateMachine(1004): processMsg: L2ConnectedState
D/WifiStateMachine(1004): handleMessage: X
D/WifiStateMachine(1004): handleMessage: E msg.what=131155
... repeated 15000+ times all interspersed together
Run Code Online (Sandbox Code Playgroud)

现在,当然我已经设置了 Logcat 过滤器,但是所有这些消息都填满了 logcat 缓冲区,而我自己的调试消息不断消失。

观察

  • 无论使用 Android Studio 还是 Eclipse,都会发生这种情况。这意味着问题出在 Logcat 上,而不是我想的 IDE 如何处理它。
  • 根据这个问题,我应该增加默认的 logcat 缓冲区大小或将其设置为无限 (0),但是由于这些垃圾邮件不断堆积的速度太快,这仍然无法解决。
  • 如果我重新启动手机,它只会在垃圾邮件赶上之前的几分钟内清除 logcat。

如何阻止这些不需要的消息溢出 Logcat 缓冲区?

更新:好的,我想我找到了一些线索。logcat 缓冲区没有被清除

$ ./adb logcat -g
/dev/log/main: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b
/dev/log/system: ring buffer is 256Kb (0Kb consumed), max entry is 5120b, max payload is 4076b
$ ./adb logcat -c
$ ./adb logcat -g
/dev/log/main: ring buffer is 256Kb (255Kb consumed), max entry is 5120b, max payload is 4076b
/dev/log/system: ring buffer is 256Kb (0Kb consumed), max entry is 5120b, max payload is 4076b
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,main缓冲区没有被清除 - 也许这就是我的应用程序的消息没有进入 logcat 的原因。

Sou*_*der 1

您可以执行以下操作来解决此问题:

1) 转到 Eclipse-> DDMS-> 设备并单击您的设备列表。

或者

2)假设您已经安装了adb,请转到命令提示符并键入

adb logcat > logs.txt
Run Code Online (Sandbox Code Playgroud)

这会将 logcat 消息转储到logs.txt 文件中,然后您可以打开它并解析调试消息的日志以获得您想要的内容。