我收到了很多与我的应用程序相关的logcat消息.
11-19 19:04:23.872 3327 3440 I chatty : uid=10085 com.xxxx.yyy expire 18 lines
这些日志消息是什么?我在这里错过了我的实际应用程序logcat日志吗?
是的,这表明某些消息没有进入实际日志,可能是因为其他应用程序向其发送了太多消息.
这似乎是Marshmallow(?)中liblog中的一个新东西.无法找到新的日志记录策略的明确解释,或者即使实际存在一个,但这里提到的更改有点:
一旦它每秒记录超过5行,我们就宣布一个应用程序过于繁琐.请对生成此developer-verbose-debug-level类记录垃圾邮件的应用程序所有者提交错误.日志是256KB,这意味着应用程序正在创建DOS攻击并将日志时间缩短到6秒(!),使其对所有其他人无用.
我想添加另一个答案,因为现有的答案都没有实际回答' 我是否错过了我的实际应用程序logcat日志?' 题.
是的,你错过了日志.一旦app被logcat认为是"聊天"(每秒超过5行),你的应用日志就会崩溃.
您可以通过将应用程序列入白名单来避免此行为:
adb logcat -P '
您可以通过执行以下命令打印当前的白名单和黑名单:
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的官方文档中找到
您可以使用以下命令禁用此行为:
adb logcat -P ""
您可以使用以下方式禁用此行为:
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