Flutter日志管理插件flutter_easylogger的使用

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

Flutter日志管理插件flutter_easylogger的使用

下载

pubspec.yaml 文件中添加依赖:

dependencies:
  flutter_easylogger: ^{LAST_VERSION}

使用

首先初始化插件并调用日志方法:

import 'package:flutter/material.dart';
import 'package:flutter_easylogger/flutter_logger.dart';

void main() {
  Logger.init(
    true, // 是否启用日志,默认为true
    isShowFile: true, // 在IDE中是否显示文件名
    isShowTime: true, // 在IDE中是否显示时间
    isShowNavigation: true, // 在IDE中点击是否跳转到打印文件详情页
    levelVerbose: 247, // 在IDE中设置详细级别的颜色
    levelDebug: 26,
    levelInfo: 28,
    levelWarn: 3,
    levelError: 9,
    phoneVerbose: Colors.white54, // 在手机或网页上设置详细级别的颜色
    phoneDebug: Colors.blue,
    phoneInfo: Colors.green,
    phoneWarn: Colors.yellow,
    phoneError: Colors.redAccent,
  );
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  void onPressed() {
    Logger.v("hello world"); // 详细级别日志
    Logger.d("hello world"); // 调试级别日志
    Logger.i("hello world"); // 信息级别日志
    Logger.w("hello world"); // 警告级别日志
    Logger.e("hello world", tag: "TAG"); // 错误级别日志
    var json = "{\"name\":\"tom\",\"age\":\"18\"}";
    Logger.json(json); // JSON格式的日志
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text("Logger"),
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: onPressed,
          child: Icon(Icons.add),
        ),
        body: Demo(),
      ),
    );
  }
}

输出

输出示例

带标签的日志

Logger.e("hello", tag: "TAG");

带标签的输出示例

JSON 支持

var json = "{\"name\":\"tom\",\"age\":\"18\"}";
Logger.json(json);

跳转到打印文件详情页

跳转到打印文件详情页

高级配置

Logger.init(
  true, // 是否启用日志,默认为true
  isShowFile: true, // 在IDE中是否显示文件名
  isShowTime: true, // 在IDE中是否显示时间
  isShowNavigation: true, // 在IDE中点击是否跳转到打印文件详情页
  levelVerbose: 247, // 在IDE中设置详细级别的颜色
  levelDebug: 26,
  levelInfo: 28,
  levelWarn: 3,
  levelError: 9,
  phoneVerbose: Colors.white54, // 在手机或网页上设置详细级别的颜色
  phoneDebug: Colors.blue,
  phoneInfo: Colors.green,
  phoneWarn: Colors.yellow,
  phoneError: Colors.redAccent,
);

颜色配置示例

日志在手机上的打印

在手机上可以打印日志,并可以通过日志级别或关键字进行过滤。

日志在手机上的输出示例

要打开控制台覆盖层,可以使用以下代码:

ConsoleOverlay.show(context);

注意事项

在生产环境中关闭日志记录:

Logger.init(false);

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

1 回复

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


当然,以下是如何在Flutter项目中集成和使用flutter_easylogger插件进行日志管理的代码示例。

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  flutter_easylogging: ^2.0.0  # 请检查最新版本号

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

2. 初始化日志配置

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

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

void main() {
  // 初始化日志配置
  EasyLogging.initialize(
    level: LogLevel.DEBUG,  // 设置日志级别
    printers: [
      // 添加控制台输出
      EasyLoggingPrinter.console(
        format: '[${logTime}] [${logLevel}] [${logFile}:${logLine}] ${logMessage}',
      ),
      // 可以添加其他输出,比如文件输出
      // EasyLoggingPrinter.file(...)
    ],
  );

  runApp(MyApp());
}

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

3. 在应用中使用日志记录

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

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: () {
        // 记录不同级别的日志
        log.verbose('This is a verbose log');
        log.debug('This is a debug log');
        log.info('This is an info log');
        log.warning('This is a warning log');
        log.error('This is an error log');

        // 你也可以传递一个对象或异常
        try {
          throw Exception('An error occurred');
        } catch (e, s) {
          log.error('An error was caught', error: e, stackTrace: s);
        }
      },
      child: Text('Log Messages'),
    );
  }
}

4. 运行应用并查看日志

运行你的Flutter应用,点击按钮后,你应该能在控制台中看到记录的日志信息,格式按照你在初始化时配置的输出格式显示。

这个示例展示了如何初始化flutter_easylogger,配置日志输出,以及在实际应用中使用不同级别的日志记录功能。根据你的需求,你可以进一步自定义日志配置,比如添加文件输出、网络输出等。

回到顶部