检索对Log的调用?例如Log.w()Log.e()Log.i()

时间:2014-08-07 12:54:20

标签: android android-log

对于我正在开发的应用,我希望简化故障排除,无论是在开发中还是在发布时。我希望能够检索到Log的调用,以便在没有通过USB调试连接手机的情况下运行应用程序,因此可以将其检索并发送给我。例如,当应用崩溃或调用Log.e(...)时,日志历史记录(呼叫Log.i()Log.w())可以发送到服务器,或者用户可以将其发送到我手动。

如何/应该如何做?

此外,该技术是否应根据应用程序是处于开发还是发布而有所不同? (我从android Log docs知道Log.v(...)不应该编译成发行版本 - 有没有比评论所有这些调用更好的方法?)

扩展Log或推广自己可能是有意义的,但魔鬼在细节中。

2 个答案:

答案 0 :(得分:1)

要检索崩溃日志,可以使用库 ACRA 。 Acra会将崩溃报告发送到您的服务器。或者,谷歌播放也有崩溃&存储用户提交的崩溃报告的开发者控制台中的ANR 选项卡。 Google Play控制台的崩溃报告非常易于使用,并提供了相同崩溃次数和发生崩溃的应用版本的其他信息。

答案 1 :(得分:1)

在我的应用程序中,我创建了LogWrapper类,正如人们所料,它包装了Log调用。在每个方法中,我检查BuildCondig.DEBUG标志以确定我是处于调试模式还是释放模式。

此外,我的LogWrapper检查哪个方法正在调用并将其添加到meassge,这通常不能直接使用Log类。

如果app处于DEBUG模式,我将日志调用传递给Log类,否则我将日志调用传递给第三方库{@ 3}}。有更多的崩溃工具,例如Crashlytics也是推荐的平台。