我正在使用多个Crashlytics.log()
命令,例如:
Crashlytics.log("This is message 1");
Crashlytics.log("This is message 2");
但是当仪表板发生崩溃时,我只能看到"这是消息1"但不是"这是消息2"。 Crashlytics日志只显示第一个日志而不是之后的任何后续日志,或者我做错了什么?如何使用多个Crashlytics.log()
命令。
答案 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日志的最大大小为64 KB。 当日志超过64 KB时,最早的记录值将被删除 为了维持这个阈值。
如果第二条消息 plus 第一条消息超过64KB,则会删除您的第一条消息。