Flutter网络日志与监控插件loggycian_networking的使用

Flutter网络日志与监控插件loggycian_networking的使用

style: very_good_analysis Powered by Mason

Loggycian Networking 是一个强大的 Dart/Flutter 应用程序的网络日志拦截器,支持 Dio、HTTP 和 GraphQL 客户端。

特性 🚀

  • 兼容多种 HTTP 客户端(Dio、HTTP 包、GraphQL)
  • 实时网络请求监控
  • 详细的请求/响应日志记录
  • CURL 命令生成
  • 查询参数跟踪
  • 头管理
  • 错误处理
  • 请求计时统计

安装 💻

为了开始使用 Loggycian Networking,您必须在机器上安装 Dart SDK。

通过 dart pub add 安装:

dart pub add loggycian_networking

持续集成 🤖

Loggycian Networking 自带了一个由 Very Good Workflows 支持的 GitHub Actions 工作流。您也可以添加您偏好的 CI/CD 解决方案。

默认情况下,在每次拉取请求和推送时,CI 会格式化、检查代码并运行测试。这确保了代码的一致性和正确性。项目使用 Very Good Analysis 进行严格的分析选项。代码覆盖率使用 Very Good Workflows 进行强制执行。

运行测试 🧪

要运行所有单元测试:

dart pub global activate coverage 1.2.0
dart test --coverage=coverage
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info

要查看生成的覆盖率报告,可以使用 lcov。

# 生成覆盖率报告
genhtml coverage/lcov.info -o coverage/

# 打开覆盖率报告
open coverage/index.html

使用示例

以下是一个如何使用 loggycian_networking 包的例子:

示例代码

import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'package:loggycian_networking/loggycian_networking.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Loggycian Networking Example')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 初始化 Dio 客户端
              final dio = Dio();
              
              // 添加 Loggycian 网络拦截器
              dio.interceptors.add(LoggycianNetworkingInterceptor());

              try {
                // 发送网络请求
                final response = await dio.get('https://jsonplaceholder.typicode.com/todos/1');
                
                print('Response Data: ${response.data}');
              } catch (e) {
                print('Error: $e');
              }
            },
            child: Text('Send Network Request'),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter网络日志与监控插件loggycian_networking的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter网络日志与监控插件loggycian_networking的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


loggycian_networking 是一个用于 Flutter 的插件,旨在简化网络请求的日志记录和监控。它可以帮助开发者更轻松地调试和分析网络请求,从而提高开发效率。以下是如何使用 loggycian_networking 插件的详细步骤:

1. 添加依赖

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

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

然后运行 flutter pub get 来安装依赖。

2. 初始化 Loggycian Networking

在你的 Flutter 应用中初始化 loggycian_networking。通常,你可以在 main.dart 文件中进行初始化:

import 'package:loggycian_networking/loggycian_networking.dart';

void main() {
  // 初始化 Loggycian Networking
  LoggycianNetworking.initialize();

  runApp(MyApp());
}

3. 使用 Loggycian Networking 发送网络请求

loggycian_networking 提供了一个简单的 API 来发送网络请求,并自动记录请求和响应的详细信息。

import 'package:loggycian_networking/loggycian_networking.dart';

Future<void> fetchData() async {
  try {
    var response = await LoggycianNetworking.get(
      'https://jsonplaceholder.typicode.com/posts',
      headers: {
        'Content-Type': 'application/json',
      },
    );

    print('Response status: ${response.statusCode}');
    print('Response body: ${response.body}');
  } catch (e) {
    print('Error: $e');
  }
}

4. 查看日志

loggycian_networking 会自动记录所有网络请求和响应的详细信息。你可以通过查看日志来调试和分析网络请求。

import 'package:loggycian_networking/loggycian_networking.dart';

void main() {
  LoggycianNetworking.initialize();

  // 设置日志级别
  LoggycianNetworking.setLogLevel(LogLevel.verbose);

  runApp(MyApp());
}

5. 自定义日志输出

你可以自定义日志的输出方式,例如将日志输出到控制台、文件或其他地方。

import 'package:loggycian_networking/loggycian_networking.dart';

void main() {
  LoggycianNetworking.initialize();

  // 自定义日志输出
  LoggycianNetworking.setLogger((log) {
    print('Custom Log: $log');
  });

  runApp(MyApp());
}

6. 监控网络请求

loggycian_networking 还提供了网络请求的监控功能,你可以实时查看网络请求的状态、耗时等信息。

import 'package:loggycian_networking/loggycian_networking.dart';

void main() {
  LoggycianNetworking.initialize();

  // 启用网络监控
  LoggycianNetworking.enableNetworkMonitoring();

  runApp(MyApp());
}

7. 处理错误

loggycian_networking 会自动捕获网络请求中的错误,并提供详细的错误信息。

import 'package:loggycian_networking/loggycian_networking.dart';

Future<void> fetchData() async {
  try {
    var response = await LoggycianNetworking.get(
      'https://jsonplaceholder.typicode.com/invalid-endpoint',
      headers: {
        'Content-Type': 'application/json',
      },
    );

    print('Response status: ${response.statusCode}');
    print('Response body: ${response.body}');
  } catch (e) {
    print('Error: $e');
  }
}

8. 高级配置

loggycian_networking 还支持一些高级配置,例如设置超时时间、重试机制等。

import 'package:loggycian_networking/loggycian_networking.dart';

void main() {
  LoggycianNetworking.initialize();

  // 设置超时时间
  LoggycianNetworking.setTimeout(Duration(seconds: 10));

  // 启用重试机制
  LoggycianNetworking.enableRetryOnFailure(maxRetries: 3);

  runApp(MyApp());
}
回到顶部