android logcat记录聊天模块行过期消息

android logcat记录聊天模块行过期消息,android,logcat,android-logcat,Android,Logcat,Android Logcat,我收到了很多与我的应用程序相关的此类logcat消息 11-19 19:04:23.872 3327 3440 I chatty:uid=10085 com.xxxx.yyy过期18行 这些日志消息是什么?这里是否缺少实际的应用程序日志?是的,这表明某些消息没有进入实际日志,可能是因为其他应用程序向其中发送了太多消息 这在棉花糖(?)的liblog中似乎是一个新事物。找不到关于新日志记录策略的明确解释,或者即使实际上有一个,但是提到了一些更改: 当一个应用程序记录超过5个日志时,我们将其声明为太

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

11-19 19:04:23.872 3327 3440 I chatty:uid=10085 com.xxxx.yyy过期18行


这些日志消息是什么?这里是否缺少实际的应用程序日志?

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

这在棉花糖(?)的liblog中似乎是一个新事物。找不到关于新日志记录策略的明确解释,或者即使实际上有一个,但是提到了一些更改:

当一个应用程序记录超过5个日志时,我们将其声明为太健谈 第二行。请针对应用程序的所有者提交一个bug 正在生成此开发人员详细调试级别类日志垃圾邮件。日志 是256KB,这意味着应用程序正在创建DOS攻击,并且 将日志时间跨度缩短为6秒(!),使其对所有其他日志都没有用处


您可以使用以下命令禁用此行为:

adb logcat -P ""
adb logcat -P ""

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

是的,您丢失了日志。一旦logcat认为应用程序“健谈”(每秒超过5行),您应用程序的日志将被折叠

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

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 
您可以在以下位置查看代码:


首先执行
adb logcat-S
检查您的应用程序是否处于最易聊天的UID/PID下

若存在,则通过执行以下命令将应用程序列入白名单

adb logcat -P "UID/PID"
adb logcat -p
要检查所有白名单/黑名单应用程序,请执行以下命令

adb logcat -P "UID/PID"
adb logcat -p


我也得到了这些,虽然我的应用程序运行良好,但我很想知道它们表明了什么。我猜是和日志记录有关吧<代码>01-22 16:04:14.256 2398 2398 I chatty:uid=10126(be.xxx.yyyyyyyyyyyy)过期11行我在
com.google.android.gms.persistent
中看到了很多这样的内容。。。我应该针对谷歌提交一个bug吗-DAlso,我经常看到它说“过期1行”。。。这怎么会太健谈呢?我收集了5-10秒的日志,结果是261个来自健谈的日志条目,所以应该填充bug,因为健谈太健谈了:我如何在IDE上禁用它?我们如何才能重新打开它?这有记录吗?@nealmcb我认为你不能永远禁用它。这些事情都是暂时的,对吧?@milosmns那么它会持续多久?直到重新启动?@nealmcb在我的6P上,它只是刷新日志并退出,我没有收到任何错误消息。执行此命令adb logcat-P“”后,不会禁用聊天功能。我试着提到我的应用程序的UID/PID,它被列入了白名单,但聊天功能仍然没有被禁用。我的设备是OnePlus5@lorenzo-s您的
adb logcat-p
adb logcat-s
的输出是什么?
adb logcat-p
打印我的应用程序PID,即我在
adb logcat-p'PID'中使用的PID,与我在Studio的Android Monitor logcat下拉列表中看到的相同。以及
adb logcat-S
的输出,我在主日志缓冲区中的
最爱聊天的UID:
部分中看不到你的应用程序。你确定你的应用程序认为什么是聊天吗?是的,我经常在logcat中收到
chatty
消息,说已经跳过了几行。您看不到它,因为这可能是一个新的开始,我只运行那个命令来向您发送输出。相同的日志在打印了一些聊天信息后,我的应用程序是PID 11432的应用程序,与我在
adb logcat-p中看到的相同。首先,尝试按UID而不是PID将你的应用程序列入白名单。如果这没有帮助,我只能建议重新启动你的设备,重新启动adb,清除你的白名单并再次添加你的应用程序PID/UID。属性似乎没有完全禁用它,但我认为如果你直接链接到liblog,它会有所帮助。这是正确的答案,希望有一天它不会是列表中的最后一个。我在Android 8.1上使用了
setprop persist.logd.filter disable
,然后重新启动,但我仍然看到
chatty。。。相同的
行。
idential
是否意味着消息仍然会被删除?@zoulou如果这些日志是相同的,那么除了这些相同日志的时间戳之外,基本上不会丢失任何其他内容