ibo*_*kiy 29 logging android crashlytics
我正在尝试使用Crashlytics在我的Android应用程序中获取带有一些服务数据的日志.但我没有在仪表板中看到我的日志.我用过这个:
String myLog = getServiceData(); //myLog is not null and non-empty
CrashLytics.log(myLog);
Run Code Online (Sandbox Code Playgroud)
还有这个:
String myLog = getServiceData(); //myLog is not null and non-empty
CrashLytics.log(Log.Error, getString(R.string.app_name), myLog);
Run Code Online (Sandbox Code Playgroud)
我试图在我的应用程序中生成异常并处理它,但没有结果:
try {
int a = 0;
a = 1/a;
}
catch (Exception e) {
CrashLytics.log(myLog);
}
Run Code Online (Sandbox Code Playgroud)
另外我读了Crashlytics日志未发送我需要在日志数据之前初始化crashlytics.我把Crashlytics.start(this)放在我的Activity的onStart()事件中,但没有再次在仪表板中看到我的日志.最后我尝试在记录数据之前直接放置Crashlitycs.start(this),但仪表板中仍然没有日志.
Plase,告诉我我做错了什么以及如何在Crashlytics仪表板中获取我的自定义日志?
Jul*_* A. 62
我有类似的情况.通过一些实验,我能够推断出Crashlytics行为的规则.
我在这里分享我的学习,所以(希望)其他人不必经历我所做的艰苦而耗时的过程.
如果发生致命异常,Crashlytics将立即将崩溃报告"立即上传到仪表板".换句话说,当您的应用程序崩溃时.除非上载崩溃报告,否则仪表板中不会显示任何内容.
如果您使用登录非致命异常,CrashLytics.logException(e)则在下次重新启动应用程序之前,不会上载崩溃报告.因此,在应用程序重新启动之前,您不会在Crashlytics仪表板中看到异常.
你可以知道上传的时间,因为你会在LogCat中看到这种消息:
07-17 19:30:41.477 18815-18906/com.foo.bar I/Crashlytics? Crashlytics report upload complete: 55A9BA0C01D7-0001-462D-B8B4C49333333.cls
Crashlytics日志消息必须与致命或非致命异常相关联才能显示在仪表板中.
此外,日志未与异常关联的消息不生存的应用程序重新启动.
因此,如果您执行某些操作,例如记录一些消息,然后重新启动应用程序,然后应用程序抛出异常,或者使用记录非致命异常Crashlytics.logException(),则日志消息将丢失.它们不会显示在仪表板中.
如果要在没有致命异常的情况下记录某些消息,请使用一个或多个Crashlytics.log()语句,然后使用Crashlytics.logException().
要验证它是否有效,请运行代码,然后重新启动应用程序.在仪表板中,您应该看到与为非致命异常创建的问题相关联的日志.在野外,你只需要相信你的用户有规律地重启应用程序.
在Fabric/Crashlytics仪表板上,您需要选择All Events或(如果您只想查看日志记录调用)Non-Fatals.
小智 5
根据Crashlytics知识库:
记录的消息与您的崩溃数据相关联,如果您查看特定的崩溃本身,则会在Crashlytics仪表板中显示.
根据我的经验,这似乎是真的.但是我不确定是什么决定了哪个日志记录与崩溃报告相关联.也许时间窗口(崩溃时间)或有限数量的日志(崩溃前)与崩溃报告相关联?
但是,Crashlytics知识库确实说可以记录异常:
所有记录的异常将在Crashlytics仪表板中显示为"非致命"问题.
因此,如果您将try/catch更改为:
try {
int a = 0;
a = 1/a;
}
catch (Exception e) {
CrashLytics.logException(e);
}
Run Code Online (Sandbox Code Playgroud)
然后它应该出现在Crashlytics仪表板中.
| 归档时间: |
|
| 查看次数: |
9955 次 |
| 最近记录: |