android logcat记录chatty模块行过期消息

时间:2016-01-04 08:35:52

标签: android logcat android-logcat

我收到很多与我的应用程序相关的logcat消息。

11-19 19:04:23.872 3327 3440 I chatty : uid=10085 com.xxxx.yyy expire 18 lines

这些日志消息是什么?我在这里错过了我的实际应用程序logcat日志吗?

5 个答案:

答案 0 :(得分:38)

是的,这表示某些消息没有进入实际日志,可能是因为其他应用程序发送了太多消息。

这似乎是Marshmallow(?)中liblog中的一个新东西。无法找到新的日志记录策略的明确解释,或者即使实际存在一个,但更改有点提及here

  

一旦应用程序记录超过5个,我们就宣布一个应用程序过于繁琐   一秒钟。请提交针对应用程序所有者的错误   正在生成这个developer-verbose-debug-level类记录垃圾邮件。日志   是256KB,这意味着应用程序正在创建DOS攻击和   将日志时间缩短到6秒(!),使其对所有其他人无用。

答案 1 :(得分:32)

我想添加另一个答案,因为现有的答案中没有一个真正回答了' 我是否错过了我的实际应用程序logcat日志?'问题

是的,您错过了日志。 一旦应用程序考虑了“聊天”#39通过logcat(每秒超过5行),您的应用程序的日志将被折叠。

您可以通过将应用程序列入白名单来避免此行为:

adb logcat -P '<pid or uid of your app>'

您可以执行以下命令打印当前的白名单和黑名单:

adb logcat -p

此命令也有助于打印logcat统计信息:

adb logcat -S

此外,我发现在测试期间直接从代码中自动将我的应用程序用于logcat的白名单:

int pid = android.os.Process.myPid();
String whiteList = "logcat -P '" + pid + "'";
Runtime.getRuntime().exec(whiteList).waitFor();

更多信息可以在logcat here

的官方文档中找到

答案 2 :(得分:8)

您可以使用以下方法禁用此行为:

adb logcat -P ""

答案 3 :(得分:5)

您可以使用以下方法禁用此行为:

adb logcat -P ""

或通过设置

setprop ro.logd.filter disable

setprop persist.logd.filter disable 

您可以在

查看代码

http://androidxref.com/7.1.2_r36/xref/system/core/logd/LogWhiteBlackList.cpp

答案 4 :(得分:0)

首先执行adb logcat -S来检查您的应用程序是否在Chattiest UID / PID下。

如果存在,则通过执行以下命令将您的应用列入白名单

adb logcat -P "UID/PID"

要检查所有列入白名单/列入黑名单的应用程序,请执行以下命令

adb logcat -p