对于我正在开发的应用,我希望简化故障排除,无论是在开发中还是在发布时。我希望能够检索到Log
的调用,以便在没有通过USB调试连接手机的情况下运行应用程序,因此可以将其检索并发送给我。例如,当应用崩溃或调用Log.e(...)
时,日志历史记录(呼叫Log.i()
,Log.w()
)可以发送到服务器,或者用户可以将其发送到我手动。
如何/应该如何做?
此外,该技术是否应根据应用程序是处于开发还是发布而有所不同? (我从android Log
docs知道Log.v(...)
不应该编译成发行版本 - 有没有比评论所有这些调用更好的方法?)
扩展Log
或推广自己可能是有意义的,但魔鬼在细节中。
答案 0 :(得分:1)
要检索崩溃日志,可以使用库 ACRA 。 Acra会将崩溃报告发送到您的服务器。或者,谷歌播放也有崩溃&存储用户提交的崩溃报告的开发者控制台中的ANR 选项卡。 Google Play控制台的崩溃报告非常易于使用,并提供了相同崩溃次数和发生崩溃的应用版本的其他信息。
答案 1 :(得分:1)
在我的应用程序中,我创建了LogWrapper类,正如人们所料,它包装了Log调用。在每个方法中,我检查BuildCondig.DEBUG
标志以确定我是处于调试模式还是释放模式。
此外,我的LogWrapper检查哪个方法正在调用并将其添加到meassge,这通常不能直接使用Log类。
如果app处于DEBUG模式,我将日志调用传递给Log类,否则我将日志调用传递给第三方库{@ 3}}。有更多的崩溃工具,例如Crashlytics也是推荐的平台。