我要描述的内容已经使用2.3和4.4.2设备进行了测试,具有完全相同的行为,因此我隔离了来自LogCat访问权限更改的任何潜在问题。
我正在使用ACRA版本0.4.5
我想做的非常简单,请确保我可以在Cloudant上向ACRA报告发送按我的应用程序名称过滤的设备的Logcat。
为了执行此操作,我按照手册和SO中的一些先前帖子(如下所示:How to filter logcat output in ACRA?)
理想情况下,我应该在配置中包含以下输入:
logcatArguments = { "-t", "100", "MyApp:D", "*:S" }
但是,这不能正常工作,并且没有错误报告到达数据库,只有2行显示空报告。为了确保有日志,我在强制调用之前强制使用LogCat输出,如下所示:
Log.i(TAG + ":Sending Error or Suggestion", "My message ");
ACRA.getErrorReporter().handleException(null);
如果我在ACRA配置中更改(两个设备)以下任何一行:
logcatArguments = { "-t", "100", "MyApp:D"}
logcatArguments = { "-t", "100"}
我从LogCat收到完整的报告,没有任何过滤。我也试过包含-v long选项(以防万一)。
回顾SO中有关此主题的所有答案,我发现所有这些答案都已过时,因为我无法明确找到与此问题和0.4.5版本相关的答案。
知道发生了什么?
==
经过一番调查后,问题并非如此简单。
目前,所有可用的文档都提供了如何使用TAG在ACRA中进行过滤的示例,目前尚不清楚如何按Eclipse在Eclipse中进行过滤。
因此,如果您遇到与我相同的错误可能会到期,因为(正如此问题提供的答案所示)您没有在所有日志中使用完全相同的TAG。
答案 0 :(得分:2)
ACRA只是将这些参数直接提供给logcat。所以你的问题是,我如何过滤logcat。
logcat过滤器是params之后的所有内容。
过滤器的格式为<tag>:<log_level>
。
如果您指定log_level为S
,那么您将这些消息标记为无声,即不要显示它们。
所以在你没有收到消息的配置中:
logcatArguments = { "-t", "100", "MyApp:D", "*:S" }
您要求使用标记MyApp
记录所有消息并忽略所有其他消息。由于您没有得到任何记录,我建议您实际上没有在您的应用中使用MyApp
作为日志标记。