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