Flutter日志管理与错误追踪插件sentry_lumberdash的使用

发布于 1周前 作者 nodeper 来自 Flutter

Flutter日志管理与错误追踪插件sentry_lumberdash的使用

插件介绍

sentry_lumberdash 是一个用于将日志发送到 Sentry 的插件。它会根据正确的严重级别发送你的日志。

如何使用

1 添加 sentry_lumberdash 到你的依赖项中。初始化 Sentry 并将其实例传递给 lumberdash

import 'package:lumberdash/lumberdash.dart';
import 'package:sentry_lumberdash/sentry_lumberdash.dart';
import 'dart:async';
import 'package:sentry/sentry.dart';

Future<void> main() async {
  await Sentry.init(
    (options) {
      options.dsn = 'https://example@sentry.io/add-your-dsn-here';
    },
    appRunner: initApp, // 初始化您的应用程序。
  );
}

void initApp() {
  putLumberdashToWork(
    withClient: SentryLumberdash(),
  );
  logWarning('Hello Warning');
  logFatal('Hello Fatal!');
  logMessage('Hello Message!');
  logError(Exception('Hello Error'));
}

这适用于 sentry-dartsentry_flutter

许可证

MIT License

Copyright © 2019 Jorge Coca

版权所有,免费提供,任何个人或组织可以复制、修改、合并、发布、分发、授予许可人以外的第三方再许可或销售本软件,并 to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


### 示例代码
```dart
import 'package:lumberdash/lumberdash.dart';
import 'package:sentry/sentry.dart';
import 'package:sentry_lumberdash/sentry_lumberdash.dart';

void main() {
  Sentry.init(
    (options) {
      options.dsn = 'https://example@sentry.io/add-your-dsn-here';
    },
  );
  putLumberdashToWork(
    withClients: [SentryLumberdash()],
  );
  logWarning('Hello Warning');
  logFatal('Hello Fatal!');
  logMessage('Hello Message!');
  logError(Exception('Hello Error'));
}

更多关于Flutter日志管理与错误追踪插件sentry_lumberdash的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter日志管理与错误追踪插件sentry_lumberdash的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter项目中,日志管理与错误追踪对于开发和维护至关重要。sentry_lumberdash 是一个结合了 sentrylumberdash 的插件,它可以帮助你高效地管理日志并追踪错误。下面是一个如何使用 sentry_lumberdash 的代码案例。

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 sentry_lumberdash 及其依赖项:

dependencies:
  flutter:
    sdk: flutter
  sentry_flutter: ^x.y.z  # 替换为最新版本号
  lumberdash: ^x.y.z      # 替换为最新版本号
  sentry_lumberdash: ^x.y.z  # 替换为最新版本号

运行 flutter pub get 来获取这些依赖。

2. 配置 Sentry

在你的 Flutter 应用的入口文件(通常是 main.dart)中,配置 Sentry。你需要提供你的 Sentry DSN。

import 'package:flutter/material.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
import 'package:lumberdash/lumberdash.dart';
import 'package:sentry_lumberdash/sentry_lumberdash.dart';

void main() {
  // Sentry 初始化
  final SentryClientOptions options = SentryClientOptions(
    dsn: 'https://your-dsn@o0.ingest.sentry.io/your-project-id',
  );
  
  SentryFlutter.init((app) {
    app.useClientOptions(options);
  });

  // Lumberdash 初始化
  final LumberdashConfig lumberdashConfig = LumberdashConfig(
    level: LogLevel.verbose,
    printers: [
      SentryPrinter(), // 使用 SentryPrinter 将日志发送到 Sentry
      ConsolePrinter(), // 同时输出到控制台
    ],
  );

  Lumberdash.initialize(config: lumberdashConfig);

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Sentry Lumberdash Demo'),
        ),
        body: Center(
          child: Text('Check your Sentry project for logs and errors!'),
        ),
      ),
    );
  }
}

3. 使用 Lumberdash 记录日志

在你的应用中,你可以使用 Lumberdash 来记录不同级别的日志。

import 'package:lumberdash/lumberdash.dart';

void someFunction() {
  Lumberdash.v('This is a verbose log');
  Lumberdash.d('This is a debug log');
  Lumberdash.i('This is an info log');
  Lumberdash.w('This is a warning log');
  Lumberdash.e('This is an error log', error: Exception('Sample Exception'));
}

4. 触发错误并捕获

你可以故意触发一个错误来测试 Sentry 的错误追踪功能。

void triggerError() {
  try {
    throw Exception('This is a test exception');
  } catch (e, s) {
    Lumberdash.e('An error occurred', error: e, stackTrace: s);
    // 或者直接使用 Sentry 捕获错误
    Sentry.captureException(e, stackTrace: s);
  }
}

在你的 UI 中调用这个函数来触发错误:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Sentry Lumberdash Demo'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              triggerError();
            },
            child: Text('Trigger Error'),
          ),
        ),
      ),
    );
  }
}

总结

通过上述步骤,你已经在 Flutter 应用中集成了 sentry_lumberdash,并配置了日志管理和错误追踪。当应用运行并触发错误时,日志和错误信息将会被发送到 Sentry,你可以在 Sentry 的仪表板上查看这些信息。

注意:确保你已经在 Sentry 上创建了项目,并获取了正确的 DSN。此外,根据项目的具体需求,你可能需要调整日志级别和 Sentry 的其他配置选项。

回到顶部