【发布时间】:2016-08-16 10:59:10
【问题描述】:
我在市场上有一个实时应用程序。 我想向它添加一个选项,供我的用户报告错误,并附上该事件发生时的相关 logcat 输出。
我尝试将 logcat 的最后 X 行保存在一个集合中,每 X 小时滚动一次文件,并在用户报告错误时压缩它们。
这种方法在使用 UncaughtExceptionHandler 崩溃时效果很好,但存在一些问题。
- 如果某些内容进入无限循环,则会写入许多日志行并最终从我的集合中消失,因为它的大小有限
- 如果应用程序被操作系统清除,中间日志行会丢失。
- 这两个经常在一起。当应用开始在后台出现异常行为时,操作系统最终会摆脱它。
是否有任何标准的解决方案或方法?
EDIT1:
由于已经有几个答案建议使用 Crashlytics 或 Flurry 等工具,因此我将澄清问题。 崩溃是错误报告的简单部分。但有时用户会看到与崩溃无关的问题,只是工作不正常。我有一个设置选项供他们报告问题,但我希望他们也能在此时附加 logcat 输出,这样我就可以更好地了解是什么让我的应用程序做了它所做的事情。
【问题讨论】:
-
根据我的阅读,很难或不可能从您的应用程序中读取 logcat。我认为您最好自己将消息记录到诸如 firebase 之类的云数据库中。