我收到很多与我的应用程序相关的logcat消息。
11-19 19:04:23.872 3327 3440 I chatty : uid=10085 com.xxxx.yyy expire 18 lines
这些日志消息是什么?我在这里错过了我的实际应用程序logcat日志吗?
答案 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