Firebase Crashlytics 自定义日志未出现在控制台中

Posted

技术标签:

【中文标题】Firebase Crashlytics 自定义日志未出现在控制台中【英文标题】:Firebase Crashlytics custom log does not appear in the console 【发布时间】:2018-07-16 06:38:44 【问题描述】:

我一直在测试Firebase Crashlytics,即使正常的崩溃报告工作正常,我也无法成功尝试生成自定义,因为它说documentation。

Crashlytics.log(msg); 

我也想知道设置Crashlytics 的用户标识符是否可以用于任何崩溃(根据我理解的文档)

void Crashlytics.setUserIdentifier(String identifier); 

以及它必须如何完成,因为它对我不起作用,我在Firebase crashlytics console 上看不到任何东西。

提前致谢!

【问题讨论】:

您是否重新打开了您的应用程序?因为当您重新打开应用时会发送 Firebase 消息!!! Crashlytics 不是为开发日志记录而设计的,它是用来在运行时聚集来自不同用户的成百上千的日志,这可能导致仪表板没有在他们的确切时间显示日志被生产。如果您想使用 Crashlytics 在开发过程中遵循代码工作流程并进行调试,则需要使用此答案中的技巧。 ***.com/a/69340289/5679560 【参考方案1】:

为了更好地理解,当您收集数据时

FirebaseCrashlytics.getInstance().log("Test w(text)")
FirebaseCrashlytics.getInstance().log("Test e(text)")

您将在 Firebase crashlytics 中获得没有新的非致命崩溃报告。 但跟进一个

FirebaseCrashlytics.getInstance().recordException(RunTimeException("Test e(throwable)"))

它将发送此错误:

此错误中有此附加日志条目

【讨论】:

除此之外,应用程序会在重启后发送粉碎报告。 对不起,但它根本没有做任何事情!有人对此有任何解决方案吗? “FirebaseCrashlytics”不存在。 我不懂这个废话。 Fabric 曾经有日志记录显示应用程序何时崩溃。现在这需要我知道什么是崩溃才能看到日志。什么!?!? 使用 log() 您收集(预)信息,您只想在崩溃时看到这些信息。这应该可以帮助您了解崩溃情况【参考方案2】:

Crashlytics 的日志记录机制不是为正常日志记录而构建的。

您放置的日志将显示在崩溃报告中,而不是作为独立日志。用户标识符信息也是如此。

尝试强制崩溃,您应该会在崩溃报告中看到崩溃前捕获的日志。如果您想要正常的日志记录,您应该查看 Firebase 分析,它将帮助您跟踪常规事件和其他分析数据。

【讨论】:

好的,我已经看到 setUserIdentifier 确实添加了我刚刚引发的崩溃的信息。但是是否有任何选项可以在全局范围内添加它,因为发生了任何崩溃?关于日志,它认为必须有一种方法可以生成自定义日志,因为它可以通过 FirebaseCrash.report 完成。无论如何,如果日志的目的是将它附加到崩溃上,在这种情况下,它不会出现在控制台上,就像它与用户标识符一样。 很遗憾没有 但是我可以使用 firebase 中的东西来简单地记录一些基本字符串吗?当我写: Log.d("Potatoes") 或 Timber.d("More Potatoes") 我可以在 Firebase 控制台的任何地方看到一些“土豆”吗?我只找到了一种方法来记录异常,然后将其与我的自定义消息一起发送到 Firebase,但这并不是我认为的最佳方式,更像是一种 hack。【参考方案3】:

这对我有用。

Crashlytics.log(message);
Crashlytics.logException(exception);

编辑:我错过了this 的解释。

【讨论】:

我所缺少的:Crashlytics.log() 一个人什么都不做,它必须与Crashlytics.logException() 一起使用。谢谢! "Crashlytics" 不存在,这可能是来自旧 API 的代码。 "Crashlytics only stores the most recent eight recorded exceptions. If your app throws more than eight exceptions, older exceptions are lost." Crashlytics.crashlytics().log("TEST")【参考方案4】:

仅用于更新使用 Firebase 记录 Kotlin 的答案是:

FirebaseCrashlytics.getInstance().log(error.toString())

对于异常

FirebaseCrashlytics.getInstance().recordException(e)

查看文档:https://firebase.google.com/docs/crashlytics/get-started?platform=android

【讨论】:

“FirebaseCrashlytics”不存在。 @AndrewKoster 你能告诉我更多细节吗?我的 Android 应用程序与“FirebaseCrashlytics”一起运行良好您是否将其添加到您的应用程序 graddle 中? 问题是我关注的是firebase.google.com/docs/android/setup,它不包括使用 Crashlytics 本身所需的任何依赖项。我终于找到了完整准确的firebase.google.com/docs/crashlytics/…。如果您将最后一个 URL 添加到答案中,我将切换我的投票。 @AndrewKoster,当然。【参考方案5】:

我在展示任何东西时也遇到了很大的问题,但我想通了。就我而言,问题在于我与 crashlytics 网站上的用户界面之间的对比。

您必须禁用过滤器说 Event Type="Crashes" 才能看到其他事件。

【讨论】:

以上是关于Firebase Crashlytics 自定义日志未出现在控制台中的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的 Firebase Crashlytics 设置?

将 Firebase Crashlytics 数据部分导出到 BigQuery

将从 Fabric 创建的自定义事件迁移到 Firebase?

firebase_crashlytics 已解析为 2.2.1,这取决于 Firebase/Crashlytics (= 8.6.0)

使用 firebase-crashlytics-gradle 的 Crashlytics 上传失败

如何使用 Firebase (Crashlytics) 记录非致命(捕获)异常