Flutter日志管理插件cherrilog的使用

Flutter日志管理插件cherrilog的使用

CherriLog 是一个用于所有 Dart 程序的简单且有用的日志库。

功能

  • 可以通过调用静态方法直接记录日志信息。
  • 提供了友好的堆栈跟踪格式化功能。
  • 支持自定义日志级别。
  • 支持自定义日志记录器:
    • CherriConsole:将输出直接发送到控制台,并带有不同的颜色。
    • CherriFile:将输出直接写入文件。

待办事项

  • ❌ 将日志记录到文件(支持全平台路径)
  • ❌ 高度可定制的日志格式

使用步骤

  1. 添加依赖 在你的 pubspec.yaml 文件中添加依赖。推荐使用命令行:

    • 对于 Flutter 项目:
      flutter pub add cherrilog
      
    • 对于 Dart 项目:
      dart pub add cherrilog
      
  2. 导入库

    import 'package:cherrilog/cherrilog.dart';
    
  3. 初始化 CherriLog

    CherriLog.init(
      options: CherriOptions()
        ..logLevelRange = CherriLogLevelRanges.all
        ..useBuffer = false,
    ).logTo(CherriConsole()); // 如果你想将日志记录到文件系统,请使用 `CherriFile()` 替换 `CherriConsole`
    
  4. 调用日志方法

    debug('This is a debug message');
    info('This is an info message');
    warning('This is a warning message');
    error('Something went wrong');
    fatal('Oh oh :(');
    

日志级别

Cherrilog 提供了一个 CherriLogLevel 类来支持自定义级别,以下是默认实例:

  • CherriLogLevel.fatal: 致命错误
  • CherriLogLevel.error: 错误
  • CherriLogLevel.warning: 警告
  • CherriLogLevel.info: 信息消息
  • CherriLogLevel.debug: 调试消息

你还会看到 netherupperBond,这两个实例用于比较,不要直接使用它们。

你可以在 CherriLogLevelRanges 类中找到一些预定义的日志级别范围。

时间戳格式

我们提供了在 formatter/timestamp.dart 中的一些预设时间戳格式。

你也可以使用自己的格式。

输出示例

Demo Outputs

注意: 颜色可能会根据终端有所不同。这可能是 VSCode 的结果。参考

示例代码

import 'package:cherrilog/cherrilog.dart';

void main() {
  CherriLog.init(
    options: CherriOptions()
      ..logLevelRange = CherriLogLevelRanges.all
      ..useBuffer = false,
  ).logTo(CherriConsole()); // 如果你想将日志记录到文件系统,请使用 `CherriFile()` 替换 `CherriConsole`

  debug('You are doing something right');

  info('You are doing something');

  warning('You are doing something wrong');

  error('You can not shutdown power');

  fatal('The power is off');
}

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

1 回复

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


当然,关于Flutter日志管理插件 cherrilog 的使用,以下是一个简单的代码示例,展示了如何在Flutter项目中集成和使用 cherrylog 进行日志管理。

首先,确保你已经在 pubspec.yaml 文件中添加了 cherrylog 依赖:

dependencies:
  flutter:
    sdk: flutter
  cherrylog: ^最新版本号 # 请替换为当前最新版本号

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

接下来,在你的 Flutter 项目中,你可以按照以下步骤配置和使用 cherrylog

  1. 初始化 CherryLog

在你的应用程序的入口文件(通常是 main.dart)中初始化 CherryLog。你可以配置日志级别、输出格式等。

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

void main() {
  // 初始化 CherryLog
  CherryLog.init(
    level: CherryLogLevel.verbose, // 设置日志级别
    printToConsole: true, // 是否输出到控制台
    logFilePath: 'logs/app.log', // 日志文件路径(可选)
    logFormatter: (log) {
      // 自定义日志格式
      return '${log.timestamp} [${log.level}] ${log.message} ${log.stackTrace?.toString() ?? ''}';
    },
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}
  1. 记录日志

在你的应用程序中,你可以使用 CherryLog 提供的静态方法来记录不同级别的日志。

import 'package:cherrylog/cherrylog.dart';

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  void _logMessages() {
    CherryLog.verbose('This is a verbose log message.');
    CherryLog.debug('This is a debug log message.');
    CherryLog.info('This is an info log message.');
    CherryLog.warning('This is a warning log message.');
    CherryLog.error('This is an error log message.', error: Exception('Sample exception'));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _logMessages,
          child: Text('Log Messages'),
        ),
      ),
    );
  }
}

在这个示例中,当你点击按钮时,会触发 _logMessages 方法,该方法会使用 CherryLog 记录不同级别的日志消息。

  1. 查看日志
  • 控制台日志:如果你将 printToConsole 设置为 true,日志消息将输出到控制台。
  • 日志文件:日志消息也会写入到指定的日志文件中(如果你配置了 logFilePath)。你可以在设备的文件系统中找到并查看这个日志文件。

请注意,由于日志文件路径可能因平台而异(例如,在Android上可能位于应用的私有存储中),你可能需要使用特定的工具或方法来访问这些日志文件。

以上就是关于如何在Flutter项目中使用 cherrylog 插件进行日志管理的一个简单示例。希望这对你有所帮助!

回到顶部