能否强制FirebaseCrashlytics将日志信息打印到安卓端控制台?
Android SDK 实现Firebase Crashlytics日志输出到控制台的可行方案
方案1:开启Crashlytics内置调试模式
谷歌收购后官方保留了调试日志开关,开启后所有写入Crashlytics的日志会同步输出到Logcat:
- 在Application的
onCreate方法、Firebase初始化完成后添加如下代码,建议仅在Debug包开启:
// Kotlin实现 val crashlytics = FirebaseCrashlytics.getInstance() // 调试模式下可关闭上报,仅保留本地日志输出 crashlytics.setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG) // 强制开启调试日志,同步输出到Logcat crashlytics.isDebugModeEnabled = true
// Java实现 FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance(); crashlytics.setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG); crashlytics.setDebugModeEnabled(true);
- 开启后在Logcat过滤
Crashlytics标签,即可查看所有日志、异常堆栈信息。
方案2:自定义日志中间层双写输出
该方案不受Firebase版本更新影响,兼容性最强。你可以自行封装日志工具类,写入Crashlytics的同时主动打印到控制台:
// Kotlin封装示例 object AppLogger { fun debug(tag: String, message: String) { // 先打印到本地控制台 Log.d(tag, message) // 同步写入Crashlytics,崩溃时会附带上报 FirebaseCrashlytics.getInstance().log("D/$tag: $message") } fun error(tag: String, message: String, throwable: Throwable? = null) { Log.e(tag, message, throwable) val crashlytics = FirebaseCrashlytics.getInstance() crashlytics.log("E/$tag: $message") throwable?.let { crashlytics.recordException(it) } } }
- 后续业务代码统一调用该工具类打日志,天然实现双端输出。
方案3:开启Crashlytics内部运行日志
如果需要查看Crashlytics初始化、上报状态等底层运行日志,可通过adb命令开启全局Debug日志:
- 执行命令:
adb shell setprop log.tag.FirebaseCrashlytics DEBUG - 重启应用后过滤
FirebaseCrashlytics标签,即可查看所有内部运行日志。
注意:所有调试相关配置仅可在Debug构建包中开启,正式包开启会导致敏感日志泄露、增加不必要的性能消耗。
内容的提问来源于stack exchange,提问作者Rafael Lima
相关产品推荐
相关产品推荐

