针对Android的Fabric Crashlytics - 如何在stackTrace区域中包含其他信息

时间:2016-12-22 04:04:17

标签: android twitter-fabric crashlytics-android

我想在崩溃异常日志记录期间另外发送一个对象转储。例如,假设发生了一个nullPointerException。我想另外添加一个大型对象,它将成为我的模型,并将其包含在crashlytics的堆栈跟踪区域中。这样当我看到堆栈跟踪时,我也可以从转储中查看模型信息。除了通常的碰撞记录之外,我如何发送此信息?以下是我到目前为止的情况:

        try{
    //....
throw new NullPointerException("my cool msg");

    }
          catch(Exception e){      
               Crashlytics.setInt("priority", 4);
                Crashlytics.setString("tag", "mytag");
                Crashlytics.setString("message", Model.toString());   
                Crashlytics.logException(e);         
    } 

现在发生的事情是什么都没有出现。但如果我为“消息”注释掉setString,那么我会得到一个带有“my cool msg”消息的堆栈跟踪。

更新:我甚至尝试过Crashlytics.log(Model.toString());但这并没有显示崩溃论。我正在onCreate中的Application子类中设置crashlytics,如下所示:Fabric.with(this, new Crashlytics());

来自现金分析文档,我发现了这个:

  

要确保发送崩溃报告对用户设备的影响最小,Crashlytics日志的最大大小为64 KB。当日志超过64 KB时,将删除最早记录的值以保持此阈值。

这可能是我的问题。现在检查我的尺寸......

调整有效负载的大小不起作用。我使有效载荷9个字符,但仍然没有出现。

更新:

让我们重新开始,但更简单。为什么以下不适合我?

try{
//....
throw new NullPointerException("my cool msg");

}
   catch(Exception e){      
        Crashlytics.setInt("priority", 4);
         Crashlytics.setString("tag", "mytag");
         Crashlytics.setString("message", "");   
         Crashlytics.logException(e);         
}

这里发生的事情确实是在crasylytics仪表板中出现了堆栈跟踪,其中包含“我的酷消息”,但没有关于优先级,标签或消息的信息。只有堆栈跟踪出现。应该在那里 不是带有这些标题的条目吗?

1 个答案:

答案 0 :(得分:3)

enter image description here

点击绿色的“查看所有会话”按钮后,我能够看到自定义信息。他们本可以让它变得更加明显。

以及docs似乎非致命异常会在下次应用启动时进行批处理并发送:

  

Crashlytics在专用后台线程上处理异常,因此对您的应用程序的性能影响很小。为了减少用户的网络流量,Crashlytics将记录的异常一起批处理,并在下次启动应用程序时将其发送。