将错误上报到收集服务
把报错信息通过服务上传
实用教程chevron_right维护 (Maintenance)chevron_right把报错信息通过服务上传
开发者总是试图创造没有 bug 的应用,但是 bug 还是会时不时地出现。这些 bug 会给用户带来糟糕的体验,所以获知 bug 发生的位置以及出现的频率就显得极为关键了。这样,你就可以根据 bug 的影响程度优先修复它们。
如何确定用户遇到 bug 的频率呢?解决方案是:当异常发生时,生成一份日志,日志中包含发生的异常及相关的堆栈信息。随后,可以将日志发送到异常监控报警平台,比如 Bugsnag、Fabric、Firebase Crashlytics、 Rollbar 或 Sentry。
异常监控报警平台会将上报的崩溃日志异常信息聚合并分组归类,这样就可以知道应用程序出现异常的频率并定位异常发生位置。
这个章节中,你可以通过以下步骤学习如何把异常信息上报给异常监控报警平台 Sentry:
- 从 Sentry 平台获取 DSN
- 导入 Sentry package
- 初始化 Sentry SDK
- 捕获并上报异常
1. 从 Sentry 平台获取 DSN
在向 Sentry 上报异常信息前,需要在 Sentry.io 上获取应用的唯一身份标识 DSN。
根据以下步骤,获取 DSN:
- 创建 Sentry 账户
- 登录账户
- 新建一个 Flutter 工程
- 复制包含 DSN 的代码片段
2. 导入 Sentry 包
导入 sentry_flutter package 到应用中,这个 package 能更方便的将错误报告发送给 Sentry 的错误追踪系统。
运行 flutter pub add 将 sentry_flutter 添加为依赖:
flutter pub add sentry_flutter
content_copy
3. 创建 SentryClient
初始化 SDK 来自动捕获不同的未处理的错误。
dart
import 'package:flutter/widgets.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
Future<void> main() async {
  await SentryFlutter.init(
    (options) => options.dsn = 'https://example@sentry.io/example',
    appRunner: () => runApp(const MyApp()),
  );
}
content_copy
另外,你也可以使用 dart-define 标记将 DSN 传递给 Flutter。
sh
--dart-define SENTRY_DSN=https://example@sentry.io/example
content_copy
这番操作都发生了什么?
使用 Sentry 捕获 Dart 和原生中未处理的错误,以上这些操作就足够了。这包括 iOS 上的 Swift、Objective-C、C 和 C++,以及 Android 上的 Java、Kotlin、C 和 C++。
4. 捕获并上报异常
除了自动初始化 Sentry SDK 来捕获和上报错误之外,你还可以通过 API 来报告错误:
dart
await Sentry.captureException(exception, stackTrace: stackTrace);
content_copy
更多相关信息,请参阅 pub.dev 上的 Sentry API 文档。
了解更多
更多关于使用 Sentry SDK 的文档可以在 其官网 查看。
完整样例
查看 Sentry flutter example 示例应用,体验完整流程。
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号