ios 在Flutter中检索客户器械的日志

iszxjhcz  于 2023-03-31  发布在  iOS
关注(0)|答案(2)|浏览(164)

我发布了我的应用程序,不幸的是客户设备上发生了一些错误。我试图了解它以解决问题,但我找不到从客户设备检索日志的方法。
Firebase Crashlytics已安装并记录未捕获的异常,但如何从设备中检索所有应用程序特定的日志?
正如我所看到的,iOS在iOS 15+中添加了OSLogStore,但没有实际的方法可以从Flutter中使用。
您使用什么解决方案来从客户设备获取最近的日志,而不告诉您的客户将手机插入Mac并在终端上运行一些命令。它可以是自动或远程控制的。或者从标题为“发送设备日志”的按钮。

68de4m5k

68de4m5k1#

这是一种常见的创建集中式日志系统的方法,您只需在应用程序启动时配置一次。例如,您可以使用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中找到更多信息。

sdnqo3pr

sdnqo3pr2#

通常,我会在AWS CloudWatch上为PROD和DEV环境记录一些关于Firebase Crashlytics的详细信息和其他内部信息(彻底)。

相关问题