Flutter日志过滤插件lack_off_debug_logs的使用

Flutter日志过滤插件lack_off_debug_logs的使用

简介

lack_off_debug_logs 是一个用于简化异常捕获和显示日志的 Flutter 插件。它支持 Android、iOS 和鸿蒙平台,并提供了简单易用的 API 来帮助开发者调试应用。


使用步骤

1. 初始化插件

在应用启动时调用 LackOff.initialize 方法,传入应用的根部件(如 MaterialAppCupertinoApp)。

void main() {
  LackOff.initialize(const MyApp());
}

2. 添加 Dio 请求拦截器

为了捕获 Dio 请求的日志,可以添加一个 PrettyDioLogger 拦截器。

import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';

final dio = Dio();

void setupDioInterceptor() {
  dio.interceptors.add(
    PrettyDioLogger(
      request: true,       // 打印请求日志
      requestHeader: true, // 打印请求头
      responseBody: true,  // 打印响应体
      responseHeader: true, // 打印响应头
    ),
  );
}

3. 显示日志按钮

调用 LackOff.showLackOffButton 方法来显示一个按钮,用户可以通过点击该按钮查看日志。

ElevatedButton(
  onPressed: () {
    LackOff.showLackOffButton(context);
  },
  child: const Text('显示日志按钮'),
),

4. 手动新增日志

如果需要手动添加自定义日志,可以使用 LackOff.addLog 方法。

LackOff.addLog(LackOffBean(
  logType: '自定义类型',
  logTitle: '自定义标题',
  logDetail: '这是自定义日志详情',
  date: DateTime.now().toString(),
));

示例代码

以下是一个完整的示例代码,展示了如何使用 lack_off_debug_logs 插件。

示例代码文件:example/lib/main.dart

import 'dart:async';

import 'package:example/dio_utils.dart'; // 假设你有一个 Dio 工具类
import 'package:flutter/material.dart';
import 'package:lack_off_debug_logs/lack_off.dart';

void main() {
  LackOff.initialize(const MyApp()); // 初始化插件
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'LackOff Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'LackOff Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});
  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            ElevatedButton(
              onPressed: () {
                LackOff.showLackOffButton(context); // 显示日志按钮
              },
              child: const Text('显示日志按钮'),
            ),
            ElevatedButton(
              onPressed: () {
                throw Exception('Flutter 运行时异常'); // 模拟运行时错误
              },
              child: const Text('触发 Flutter 错误'),
            ),
            ElevatedButton(
              onPressed: () {
                // 模拟一个定时器异常
                Timer(const Duration(seconds: 2), () {
                  throw Exception('这是一个意外错误!');
                });
              },
              child: const Text('触发 Dart 异常'),
            ),
            ElevatedButton(
              onPressed: () {
                DioUtil.instance.get(); // 调用 Dio 请求
              },
              child: const Text('显示 Dio 日志'),
            ),
          ],
        ),
      ),
    );
  }

  Future<void> fetchData() async {
    // 模拟网络请求延迟
    await Future.delayed(Duration(seconds: 1));

    // 抛出一个异常,例如网络请求失败
    throw Exception('网络请求失败!');
  }
}

更多关于Flutter日志过滤插件lack_off_debug_logs的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter日志过滤插件lack_off_debug_logs的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


lack_off_debug_logs 是一个用于 Flutter 的日志过滤插件,它可以帮助你在开发过程中过滤掉不必要的调试日志,从而让日志输出更加简洁和易于管理。以下是如何使用 lack_off_debug_logs 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 lack_off_debug_logs 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  lack_off_debug_logs: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

在你的 Dart 文件中导入 lack_off_debug_logs 插件:

import 'package:lack_off_debug_logs/lack_off_debug_logs.dart';

3. 初始化插件

main 函数中初始化 lack_off_debug_logs 插件:

void main() {
  LackOffDebugLogs.initialize();
  runApp(MyApp());
}

4. 使用插件

lack_off_debug_logs 插件会自动过滤掉 debugPrintprint 输出的调试日志。你可以在代码中继续使用 debugPrintprint,但只有符合特定条件的日志才会被输出。

5. 配置过滤规则(可选)

你可以通过配置过滤规则来控制哪些日志被输出。例如,你可以设置只输出包含特定关键字的日志:

void main() {
  LackOffDebugLogs.initialize(
    filter: (String message) {
      return message.contains('IMPORTANT'); // 只输出包含 'IMPORTANT' 的日志
    },
  );
  runApp(MyApp());
}

6. 禁用插件(可选)

如果你想要在特定情况下禁用日志过滤,可以调用 disable 方法:

LackOffDebugLogs.disable();

7. 启用插件(可选)

如果你之前禁用了插件,可以通过调用 enable 方法重新启用:

LackOffDebugLogs.enable();

8. 示例代码

以下是一个完整的示例代码,展示了如何使用 lack_off_debug_logs 插件:

import 'package:flutter/material.dart';
import 'package:lack_off_debug_logs/lack_off_debug_logs.dart';

void main() {
  LackOffDebugLogs.initialize(
    filter: (String message) {
      return message.contains('IMPORTANT'); // 只输出包含 'IMPORTANT' 的日志
    },
  );
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Lack Off Debug Logs Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              print('This is a normal log.'); // 不会被输出
              print('This is an IMPORTANT log.'); // 会被输出
            },
            child: Text('Print Logs'),
          ),
        ),
      ),
    );
  }
}
回到顶部