我收到了很多与我的应用程序相关的这种logcat信息。
11-19 19:04:23.872 3327 3440 I chatty : uid=10085 com.xxxx.yyy expire 18 lines
这些日志消息是什么? 我是否错过了真正的应用程序logcat日志?
我收到了很多与我的应用程序相关的这种logcat信息。
11-19 19:04:23.872 3327 3440 I chatty : uid=10085 com.xxxx.yyy expire 18 lines
这些日志消息是什么? 我是否错过了真正的应用程序logcat日志?
我想补充一下答案,因为现有的答案都没有回答“我是不是错过了我的实际应用程序logcat日志?”这个问题。
是的,你错过了日志。 一旦应用程序被logcat视为“喋喋不休”(每秒5行以上),应用程序的日志将被折叠。
您可以通过为logcat设置一个白名单来避免这种行为:
adb logcat -P '<您的应用程序的pid或uid>'
您可以执行以下命令打印当前的白名单和黑名单:
adb logcat -p
此外,在测试期间,从代码中自动为logcat设置我的应用程序的白名单也很有用:
int pid = android.os.Process.myPid();
String whiteList = "logcat -P '" + pid + "'";
Runtime.getRuntime().exec(whiteList).waitFor();
更多信息可以在logcat的官方文档这里找到。
adb logcat -p
和 adb logcat -S
的输出是什么? - Anton Malmyginadb logcat -p
prints my app PID, i.e. the one I used in adb logcat -P 'pid'
, the same I see in Studio's Android Monitor logcat dropdown. And here is the output for adb logcat -S
- lorenzo-s是的,这表明一些消息没有被记录在实际日志中,可能是因为其他应用向其发送了太多消息。
这似乎是Marshmallow中liblog的一个新变化(?)。找不到关于新日志策略的清晰解释,甚至不确定是否有一个新策略,但这个变化在这里有所提及:here:
我们声明一个应用程序在每秒记录超过5行日志时为过于冗杂。请向产生此开发人员-详细-debug级别类日志垃圾邮件的应用程序所有者提交错误报告。日志文件大小为256KB,这意味着该应用程序正在创建DOS攻击并将日志时间缩短到6秒(!)以使其对所有其他用户无用。
您可以通过以下方式禁用此行为:
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查看代码。
setprop persist.logd.filter disable
,然后重新启动,但我仍然看到chatty ... identical
行。 identical
是指消息仍然被丢弃吗? - zoulou您可以通过使用以下方式禁用此行为:
adb logcat -P ""
adb logcat
时如果没有使用 -P
选项,你会再次得到缩短的日志。很奇怪这是如何工作的,Chatty 在运行时吞噬了一些行吗? - milosmns首先执行adb logcat -S
检查您的应用程序是否在最繁忙的UID/PID下。
如果是,请通过执行以下命令将其加入白名单
adb logcat -P "UID/PID"
要检查所有已列入白名单/黑名单的应用程序,请执行以下命令
adb logcat -p
01-22 16:04:14.256 2398 2398 I chatty : uid=10126(be.xxx.yyyyyyyyyy) expire 11 lines
- Fugue