Flutter日志记录插件hybrid_logger的使用

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

Flutter日志记录插件hybrid_logger的使用

Hybrid Logger logo

Hybrid Logger

这是一个有用的包,提供了开发时的日志工具。它允许你选择不同的日志设计或类型,并轻松跟踪HTTP调用、堆栈跟踪等。

包提供的功能

这些功能可以分为三大类:通用日志功能堆栈跟踪日志HTTP日志

通用日志
  • critical(dynamic msg, {String? header})
  • error(dynamic msg, {String? header})
  • warning(dynamic msg, {String? header})
  • debug(dynamic msg, {String? header})
  • info(dynamic msg, {String? header})
  • success(dynamic msg, {String? header})

这些类型的日志会在被调用时显示出来。header 是可选的,如果未设置,则不会显示。每种日志的样式依赖于库定义的颜色,但可以通过配置 Hybrid Settings Class 进行覆盖。

堆栈跟踪
  • stackTrx(StackTrace stack, {String? header}): 要使用它,只需在函数或方法中调用它并传入 StackTrace.current。这样做后,每次调用该方法时,都会有一个包含其名称和所在文件的日志。
HTTP日志
  • httpRequest(HybridHttpRequest request): 需要一个 HybridHttpRequest 对象,该对象将包含已记录请求的状态码、数据、查询参数等。
  • httpResponse(HybridHttpResponse response): 需要一个 HybridHttpResponse 对象来记录响应数据。
  • httpError(HybridHttpError httpError): 需要一个 HybridHttpError 对象来记录HTTP请求被拒绝或无法执行时的错误数据。

使用包

要使用此包,只需将其导入到 pubspec.yaml 文件中,配置一个 HybridLogger 实例,并使用其方法执行不同类型的日志记录。

创建和配置HybridLogger
import 'package:hybrid_logger/hybrid_logger.dart';

final logger = HybridLogger(
    settings: HybridSettings(
        // 参数以自定义日志使用的颜色
        colors: {
            LogTypeEntity.debug: AnsiPen.green()
        },

        // 默认日志类型
        type: LogTypeEntity.info,

        // 分隔符
        lineSymbol: '-',

        // 每行最大字符数
        maxLineWidth: 60,

        // 是否显示分隔符
        showLines: true,

        // 是否隐藏或显示定义的头或每个日志的标题
        showHeaders: true,

        // 如果需要,是否使用Dart SDK打印
        forceLogs: false,
    ),

    // 抽象类以定义日志在控制台上如何显示,默认实现为 "LineStyleLogger"
    formatter: const LineStyleLogger(),

    // 可选抽象类以定义何时显示日志
    filter: LogTypeFilter()
);
使用HybridLogger对象,在需要记录日志的地方调用方法
void main() async {
    await apiCallMethod();
    stackTraceMethod();
    debugMethod();
}

// HTTP日志将需要在API调用期间获取的参数,
// 如果它们未设置,记录器将默认显示null字段
Future<void> apiCallMethod() async {
    logger.httpRequest(
        const HybridHttpRequest(
            path: "/hello",
            method: "GET",
            baseUrl: "https://fakeapi/api",
            data: {},
            queryParameters: {},
            headers: {},
        ),
    );
    logger.httpResponse(
        const HybridHttpResponse(
            statusCode: "200",
            data: {"message": "Hello World!"}
        ),
    );
    logger.httpError(
        const HybridHttpError(
            path: 'Test/text/v2', 
            statusCode: '500',
        )
    );
}

void stackTraceMethod() {
    logger.stackTrx(StackTrace.current);
}

void debugMethod() {
    logger.info("This is a log", header: "Debug Method");
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用hybrid_logger插件来进行日志记录的代码示例。hybrid_logger插件允许你在Flutter应用中记录日志,并且可以在原生代码(如Android和iOS)中进行日志管理。

1. 添加依赖

首先,在你的pubspec.yaml文件中添加hybrid_logger的依赖:

dependencies:
  flutter:
    sdk: flutter
  hybrid_logger: ^最新版本号  # 请替换为实际最新版本号

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

2. 配置HybridLogger

在你的Flutter应用中,配置HybridLogger实例。通常你会在应用的主入口文件(如main.dart)中完成这个配置。

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

void main() {
  // 配置HybridLogger
  HybridLogger.config(
    level: LogLevel.verbose, // 设置日志级别
    enableFileLogger: true,  // 是否启用文件日志记录
    maxFileSize: 1024 * 1024, // 单个文件最大大小(字节)
    maxFilesCount: 5,        // 保留的最大文件数量
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Hybrid Logger Demo'),
        ),
        body: Center(
          child: MyHomePage(),
        ),
      ),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        // 记录不同级别的日志
        HybridLogger.v('This is a verbose log');
        HybridLogger.d('This is a debug log');
        HybridLogger.i('This is an info log');
        HybridLogger.w('This is a warning log');
        HybridLogger.e('This is an error log');
      },
      child: Text('Log Messages'),
    );
  }
}

3. 在原生代码中查看日志

Android

在Android Studio中运行你的Flutter应用,你可以在Logcat中看到日志输出。hybrid_logger插件会将日志输出到Logcat中,你可以使用相应的日志级别过滤器来查看不同级别的日志。

iOS

在Xcode中运行你的Flutter应用,你可以在Xcode的控制台中看到日志输出。同样,hybrid_logger插件会将日志输出到Xcode的控制台中。

4. 文件日志查看

如果启用了文件日志记录(enableFileLogger: true),你可以在设备的存储中找到日志文件。日志文件的具体位置取决于设备的操作系统和配置,但通常可以在应用的沙盒目录中找到。

注意事项

  • 确保在发布版本中也配置了日志记录,以便在出现问题时能够有详细的日志信息进行排查。
  • 根据应用的需求调整日志级别和文件日志的相关配置。

通过上述步骤,你应该能够在Flutter应用中使用hybrid_logger插件来记录和管理日志。

回到顶部