android - 在 Flutter 中从客户设备检索日志

标签 android ios flutter logging crash-reports

我发布了我的应用程序,不幸的是客户设备上发生了一些错误。我试图理解它以解决问题,但我找不到从客户设备检索日志的方法。

Firebase Crashlytics 已安装并记录未捕获的异常,但如何从设备检索所有应用特定日志?

据我所知,iOS 在 iOS 15+ 中添加了 OSLogStore,但没有实用的方法可以从 Flutter 中使用。

您使用什么解决方案从客户设备获取最新日志,而无需告诉客户将手机插入 Mac 并在终端上运行一些命令。它可以是自动的或远程控制的。或者通过标题为“发送设备日志”的按钮。

最佳答案

这是创建集中式日志系统的常见方法,您只需在应用程序启动时配置一次。您可以例如使用 dart 自己的 logging 打包并针对调试和发布版本进行不同的配置。

import 'package:flutter/foundation.dart';

if(kReleaseMode){ 
   Logger.root.level = Level.INFO; // is also the default
   Logger.root.onRecord.listen((record) {
      // Write to a file, to a server or use something like crashlytics
      FirebaseCrashlytics.instance.log('${record.level.name}: ${record.time}: ${record.message}');
   });
} else {
   Logger.root.level = Level.ALL; 
   Logger.root.onRecord.listen((record) {
     print('${record.level.name}: ${record.time}: ${record.message}');
   });
}

在您的应用程序中,您可以像这样使用它

final log = Logger('MyClassName');
log.info("Info message");
log.warning("Warning");

当然,没有必要为此目的使用 Crashlytics。您可以使用任何不同的远程日志记录解决方案,或者将所有内容记录到文件中。要创建文件并写入文件,您可以在 the documentation 中找到更多信息。 .

关于android - 在 Flutter 中从客户设备检索日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75859813/

相关文章:

java - Android,viewpager,每个布局都有自己的 Activity

Android应用如何存储用户喜爱的数据来个性化动态数据

debugging - 错误 : Access denied finding property "vendor.gralloc.disable_ahardware_buffer"

Flutter 列和行

android - Android套接字连接超时

java - 在 Android 中同时共享文本和图像

ios - 应用程序链接在 Facebook 和 Safari 中不起作用

ios - 切换时透明背景重叠的 View Controller (Swift)

ios - Xcode - 使用约束

command - 'flutter' 未被识别为内部或外部命令