Flutter控制台输出插件flutter_console的使用

Flutter控制台输出插件flutter_console的使用

项目介绍

一个在Flutter端Console可视化的组件,将Console Window置于页面最顶层,用于调试,输出日志等。

安装使用

安装步骤可以在 Pub.dev 上查看。

简单Demo

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter_console/flutter_console.dart';

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

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final navKey = GlobalKey<NavigatorState>();

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      navigatorKey: navKey,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Flutter Console'),
        ),
        body: Center(
          child: GestureDetector(
            onTap: showLog,
            child: Container(
              height: 50,
              width: 100,
              color: Colors.purple,
              child: Center(
                child: Text(
                  'show',
                  style: TextStyle(color: Colors.white, fontSize: 18),
                ),
              ),
            ),
          ),
        ),
      ),
    );
  }

  void showLog() {
    // 创建一个日志流
    ConsoleStream logStream = ConsoleStream();
    // 显示ConsoleOverlay,并设置日志流
    ConsoleOverlay().show(baseOverlay: navKey.currentState!.overlay!, contentStream: logStream, y: 300,);
    // 开始推送日志
    pushLog(logStream);
  }

  void pushLog(ConsoleStream cr) {
    // 推送一条日志信息
    cr.push('Show Log:' + DateTime.now().millisecondsSinceEpoch.toString());
    // 设置一个定时器,每秒推送一次新的日志
    Future.delayed(const Duration(milliseconds: 1000), () {
      pushLog(cr);
    });
  }
}

img

功能介绍:

工具栏从左至右

  • 折叠按钮:将整个Console Window折叠为一个小窗口,点击小窗口可以恢复大窗口。
  • 拉伸按钮:用于将Console Window进行上下拉伸。
  • 清除按钮:可以将当前所有Log清除。
  • 关闭按钮:将Console Window关闭。
  • 至底按钮:Console Window滚动到最底部。

img

API介绍

void show({
  required OverlayState baseOverlay, 
  required ConsoleStream contentStream, 
  double y = 200
}) {}

更多关于Flutter控制台输出插件flutter_console的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter控制台输出插件flutter_console的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_console 是一个用于在 Flutter 应用中输出日志到控制台的插件。它可以帮助开发者更方便地调试和监控应用的运行状态。以下是如何使用 flutter_console 插件的基本步骤:

1. 添加依赖

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

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

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

2. 导入包

在需要使用 flutter_console 的文件中导入包:

import 'package:flutter_console/flutter_console.dart';

3. 使用 flutter_console

flutter_console 提供了几种不同的日志级别来输出信息,包括 debug, info, warning, error, 和 verbose。你可以根据需要选择合适的日志级别。

示例代码

void main() {
  // 初始化控制台
  Console.init();

  // 输出不同级别的日志
  Console.debug('This is a debug message');
  Console.info('This is an info message');
  Console.warning('This is a warning message');
  Console.error('This is an error message');
  Console.verbose('This is a verbose message');

  // 你也可以使用默认的日志输出
  print('This is a regular print statement');
}

4. 配置日志级别

你可以通过 Console.setLevel 方法来设置日志的输出级别,低于该级别的日志将不会被输出。

void main() {
  Console.init();

  // 设置日志级别为 warning,只有 warning 和 error 级别的日志会输出
  Console.setLevel(LogLevel.warning);

  Console.debug('This will not be printed');
  Console.warning('This will be printed');
  Console.error('This will be printed');
}

5. 自定义日志输出

你可以通过 Console.setOutput 方法来自定义日志的输出方式,例如将日志输出到文件或网络。

void main() {
  Console.init();

  // 自定义日志输出
  Console.setOutput((String message, LogLevel level) {
    // 这里你可以将日志输出到文件、网络或其他地方
    print('Custom Output: $message');
  });

  Console.info('This message will be handled by custom output');
}

6. 清理资源

在应用退出时,你可以调用 Console.dispose 方法来释放资源。

void main() {
  Console.init();

  // 应用退出时释放资源
  Console.dispose();
}

7. 日志格式

flutter_console 默认会在日志前添加时间戳和日志级别,格式如下:

[2023-10-01 12:34:56.789] [INFO] This is an info message

你可以通过 Console.setFormat 方法来自定义日志格式。

void main() {
  Console.init();

  // 自定义日志格式
  Console.setFormat((LogLevel level, String message) {
    return '[$level] $message';
  });

  Console.info('This message has a custom format');
}
回到顶部