【问题标题】:Android: Make the app logs my logging statements "only"Android:让应用程序“仅”记录我的日志记录语句
【发布时间】:2012-08-18 03:53:39
【问题描述】:

我正计划签署一个 apk 并发布它(通过导出 Eclipse 工具)。然后上传到市场。我知道 debuggable 在签名时默认设置为 false ,这意味着不会捕获任何日志。同时,如果我将 debuggable 设置为 true 并释放 apk,那么我会得到所有的日志。

我真正感兴趣的是最后一个仅由我添加的调试语句。目前,我正在使用 Log.i 语句添加信息日志。有没有办法让我的应用程序只记录信息日志(即只记录我的日志)。 Mybe,如果我禁用日志并使用 system.out.print 它会起作用吗?

我这样做的原因是因为我想在发生崩溃时发送最后 100 行日志,并且我只对我的日志语句感兴趣。

请帮帮我 谢谢

【问题讨论】:

标签: android android-logcat


【解决方案1】:

我相信您需要做的是利用 ACRA 的内置过滤功能:

In the Advanced Usage wiki 你可以看到你可以在你的配置中设置你的 logcat 参数。

在您的日志记录中,使用特定标记和调试级别标记您的自定义日志消息,然后在 logcat 参数中,然后设置一个参数:

logcatArguments = { "-t", "100", "-v", "long", "ActivityManager:I", "MyApp:D", "*:S" }

的形式加一
"YourCustomTag:<YOUR_DEBUG_LEVEL>" 

并取出您不想被记录的那些(在这种情况下可能是 MyApp:D。)

【讨论】:

  • 是的,当您进行过滤时,会发生什么 ACRA 将获取最后 100 行系统日志,根据您的 TAG 对其进行过滤并将过滤后的版本发送给您(最终为 10-20 行)。我需要使用 1000 的参数来完成我想要的,但 ACRA 说不要这样做,因为它太多了。我已经在stackoverflow.com/questions/11946581/中提出了问题,但我仍然没有得到答案
  • 啊,我明白你在说什么。老实说,最好的解决方案可能是远离 acra 并使用您自己的错误日志记录:类似于此答案的内容:stackoverflow.com/a/755151/1359772
【解决方案2】:

您必须在 Log 顶部放置一个包装器,您可以在其中放置控制日志级别的功能。

【讨论】:

  • 这将如何工作?如果我理解正确,那不涉及修改 Android 源吗?因为如果 Log 封装在应用程序本身中,其他应用程序(和操作系统)仍将使用 Android 系统的 Log,它是未封装的。
  • 再次阅读您的问题并了解您想在应用程序崩溃时捕获它的状态。为此,您可以创建自定义记录器,该记录器将写入可以上传到服务器的文件中。自定义记录器将使您完全控制要捕获的日志的大小和日志级别。希望这能回答你的问题。
  • 嗯。这实际上是有道理的(顺便说一句,我是发布问题的人:))。我喜欢你的建议,唯一的问题是我使用 ACRA 向我发送日志。如何使用它来发送自定义日志文件?否则我将不得不编写自己的代码来发送它,这变得太多了
【解决方案3】:

这种类型的功能已经由ACRA Android 库实现。该库检测崩溃,并将崩溃信息发送到 Google Docs 电子表格或您自己的目的地。您可以使用here 所示的方法添加其他信息,例如日志的过去 100 行。

【讨论】:

  • 是的,我已经使用 ACRA 向我发送了最后 100 行。问题是这 100 行是由所有系统日志组成的。我需要最后 100 行“我的日志”,这不是 ACRA 中的功能
  • 您可以使用第二个链接中的 logcat 参数将日志过滤到仅您的进程 ID 或仅一个 TAG。这样,只会收到您的应用消息
  • 是的,当您进行过滤时,会发生什么 ACRA 将获取最后 100 行系统日志,根据您的 TAG 对其进行过滤并将过滤后的版本发送给您(最终为 10-20 行)。我需要使用 1000 的参数来完成我想要的,但 ACRA 说不要这样做,因为它太多了。我已经问过这个问题,但它在stackoverflow.com/questions/11946581/… 中,我仍然没有得到答案
猜你喜欢
  • 2012-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多