使用Crashlytics进行日志记录

时间:2014-03-15 22:01:45

标签: android logging crashlytics

我正在使用多个Crashlytics.log()命令,例如:

Crashlytics.log("This is message 1");
Crashlytics.log("This is message 2"); 

但是当仪表板发生崩溃时,我只能看到"这是消息1"但不是"这是消息2"。 Crashlytics日志只显示第一个日志而不是之后的任何后续日志,或者我做错了什么?如何使用多个Crashlytics.log()命令。

6 个答案:

答案 0 :(得分:16)

日志消息将保存,但异常。所以Crashlytics.log("1");不会做任何例外。

你应该这样开火:

Crashlytics.log(Log.ERROR, "YourTAG", "YourMessage");
Crashlytics.logException(new Throwable("YourERROR"));

答案 1 :(得分:1)

似乎Crashlytics正在异步编写日志消息。因此,在使用Crashlytics.log()时,您将始终处于竞争状态。

根据您正在做的事情,在崩溃之前进行短暂(和丑陋)睡眠可能会解决此问题:

Crashlytics.log("1");
Crashlytics.log("2");
try {
    Thread.sleep(1000);
} catch (InterruptedException e) {
    // NOP: Ignored!
}
throw new RuntimeException("Failed directly after logging.");

或者您可以改为使用自定义键:

Crashlytics.setString("SOME_IMPORTANT_VALUE", "1");

答案 2 :(得分:1)

我想向其他路人添加一条注释,即额外的日志只能在每个会话的基础上查看。在给定的问题中,单击View All Sessions按钮,您将看到密钥和日志的其他信息。此处显示由结构保留的所有日志,因此您可以在异常之前多次记录。我花了很长时间才意识到这一点。

正如其他人已经注意到并且有记录表明,在通过logException记录throwable之前,Crashlytics可能不会发送日志报告。如果日志没有出现在该屏幕上,请记住这一点。

答案 3 :(得分:0)

我正在使用Crashlytics日志系统,我可以看到更多的日志。事实上,我可以看到我在崩溃点之前添加到应用程序的所有日志。

我的猜测是您的应用在“消息2”日志行之前发生了崩溃。

答案 4 :(得分:0)

根据此answer

重新启动应用程序时显示的日志。

答案 5 :(得分:0)

根据Crashlytics docs

  

确保发送崩溃报告对   您的用户设备上,Crashlytics日志的最大大小为64 KB。   当日志超过64 KB时,最早的记录值将被删除   为了维持这个阈值。

如果第二条消息 plus 第一条消息超过64KB,则会删除您的第一条消息。