Crashlytics 自定义日志何时发送?

Bar*_*tek 3 android crashlytics crashlytics-android

我有一个 BaseActivity 作为我所有活动的父级。我想将 Activity 事件(onCreate()、onStart()、onResume() 等)记录到 Crashlytics,因此当发生崩溃时,我知道用户在做什么以及哪些活动当前处于活动状态。我将以下代码添加到要记录的所有方法中:

CrashlyticsCore.getInstance().log(getClass().getSimpleName() + ".onResume()");
Run Code Online (Sandbox Code Playgroud)

我想知道这样做是否是个好主意。是否仅在发生崩溃时发送日志?我不会向服务器发送垃圾邮件并为用户产生不必要的网络呼叫吗?也许有更好的方法来使用 Crashlytics 实现面包屑?

Meh*_*t K 5

顾名思义,Crashlytics 只会在崩溃后触发报告(并发送日志),并且最多只包含 64kb 的日志历史记录,如文档中所述:“为了确保发送崩溃报告的影响最小在您用户的设备上,Crashlytics 日志的最大大小为 64 KB。当日志超过 64 KB 时,将删除最早记录的值以维持此阈值。”

如果您询问我的个人意见,记录每个onCreate, onResume. Crashlytics 报告已包含堆栈跟踪,可让您深入了解错误。

如果您已捕获异常并想要记录这些异常,您可以按照此处的说明进行操作,方法是调用Crashlytics.logException(e);. 同样只存储其中的 8 个:“对于任何单个应用程序会话,仅存储最近记录的 8 个异常”。

  • 谢谢你的好回答。我想解释一下为什么我需要 onCreate、onResume 等。有时堆栈跟踪不足以重现错误。我想知道用户经过了哪些确切的屏幕,以及他们是否在旋转设备。Crashlytics 没有向我提供这些详细信息,是吗?我听说 Firebase 在此功能方面更好,但我现在无法在我的项目中替换 Crashlytics。 (2认同)
  • 我向 Fabric 支持人员发送了一封包含相同问题的电子邮件。他们回答说:“好主意!日志只与崩溃一起发送,所以你应该准备好了:)” (2认同)