ACRA LogCat参数未按预期工作

时间:2014-11-05 00:34:44

标签: android android-logcat acra

我要描述的内容已经使用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。

1 个答案:

答案 0 :(得分:2)

ACRA只是将这些参数直接提供给logcat。所以你的问题是,我如何过滤logcat。

logcat过滤器是params之后的所有内容。 过滤器的格式为<tag>:<log_level>。 如果您指定log_level为S,那么您将这些消息标记为无声,即不要显示它们。

所以在你没有收到消息的配置中:

logcatArguments = { "-t", "100", "MyApp:D", "*:S" }

您要求使用标记MyApp记录所有消息并忽略所有其他消息。由于您没有得到任何记录,我建议您实际上没有在您的应用中使用MyApp作为日志标记。