如何将数据记录到Flutter控制台?

时间:2018-04-20 11:33:09

标签: intellij-idea console dart flutter

Hello Flutter Devs :)

我是初学者并使用IntelliJ IDEA,我想将数据记录到控制台?

我尝试了print()printDebug(),但我的数据都没有显示在Flutter控制台中。

6 个答案:

答案 0 :(得分:22)

如果您在Flutter Widget内,可以使用debugPrint,例如,

import 'package:flutter/foundation.dart';

debugPrint('movieTitle: $movieTitle');


否则,您可以使用Dar的log功能

import 'dart:developer';

log('data: $data');

答案 1 :(得分:7)

log()来自“ dart:developer”

  • 似乎没有最大长度限制,例如print()debugPrint()

  • 因此,当您希望记录整个API响应时,它会很有帮助。

  • 并且还有助于dart开发工具显示格式化的日志记录。

import 'dart:developer';  //(auto import will do this even)
//example for api logging
  log("${response?.statusCode} :  ${response?.request?.path}",
          name: "Response", error: response.data);

答案 2 :(得分:6)

Dart print()函数输出到系统控制台,您可以使用浮动日志(基本上是adb logcat的包装器)查看该控制台。

如果一次输出太多,则Android有时会丢弃一些日志行。为避免这种情况,您可以使用 debugPrint()

在这里找到:https://flutter.io/docs/testing/debugging

答案 3 :(得分:1)

我在代码中使用了print(),并在调试控制台中进行打印。

答案 4 :(得分:0)

或者,我为 Flutter 应用程序创建了一个记录器:https://github.com/hiteshsahu/Flutter-Logger

只需复制 fatal error: module map file '/Users/karar/Library/Developer/Xcode/DerivedData/TheGlobalDoctor-axdadhlgtbbtzcabxyzzteupuwlt/Build/Products/Debug-iphonesimulator/YogaKit/YogaKit.modulemap' not found 1 error generated. 并添加到您的项目中,然后像这样使用它:

  1. AppLog.i("信息消息"); // 简单的信息消息
  2. AppLog.i("主页", tag: "用户日志"); // 带有标识符 TAG 的信息消息

示例:

输入

AppLog.dart

输出:

<块引用>
    AppLog.v("-----------------------------");
    AppLog.d("I am Debug Log With Default TAG");
    AppLog.i("I am Info Log With Default TAG");
    AppLog.w("I am Warn Log With Default TAG");
    AppLog.e("I am Error Log With Default TAG");
    AppLog.wtf("I am Failure Log With Default TAG");
    AppLog.v("I am Verbose Log With Default TAG");

   //With TAGS
    AppLog.v("-----------------------------");
    AppLog.d("I am Debug Log With Custom TAG", tag: "Awesome Widget");
    AppLog.i("I am Info Log With Custom TAG", tag: "Awesome Widget");
    AppLog.w("I am Warn Log With Custom TAG", tag: "Awesome Widget");
    AppLog.e("I am Error Log With Custom TAG", tag: "Awesome Widget");
    AppLog.wtf("I am Failure Log With Custom TAG", tag: "Awesome Widget");
    AppLog.v("I am Verbose Log With Custom TAG", tag: "Awesome Widget");
    AppLog.v("-----------------------------");

您还可以为日志级别设置过滤器

<块引用>

AppLog.setLogLevel(log_priority); // 低于 log_priority 的日志将被隐藏

始终优先:

<块引用>

VERBOSE<=log_priority<= FAILURE

<块引用>

优先级:VERBOSE

示例 隐藏所有信息和调试日志:

Restarted application in 347ms.
FlutterApp: -----------------------------
DEBUG|FlutterApp: I am Debug Log With Default TAG
INFOⓘ|FlutterApp: I am Info Log With Default TAG
WARN⚠️|FlutterApp: I am Warn Log With Default TAG
ERROR⚠️|️FlutterApp: I am Error Log With Default TAG
WTF¯\_(ツ)_/¯|FlutterApp: I am Failure Log With Default TAG
FlutterApp: I am Verbose Log With Default TAG
FlutterApp: -----------------------------
DEBUG|Awesome Widget: I am Debug Log With Custom TAG
INFOⓘ|Awesome Widget: I am Info Log With Custom TAG
WARN⚠️|Awesome Widget: I am Warn Log With Custom TAG
ERROR⚠️|️Awesome Widget: I am Error Log With Custom TAG
WTF¯\_(ツ)_/¯|Awesome Widget: I am Failure Log With Custom TAG
Awesome Widget: I am Verbose Log With Custom TAG
FlutterApp: -----------------------------

输出

<块引用>
AppLog.setLogLevel(AppLog.WARN);
AppLog.v("-----------------------------");
AppLog.d("Debug Log Will not be Visible");
AppLog.i("Info Log Will not be Visible");
AppLog.w("Warn Log Will be Visible");
AppLog.e("Error Log Will be Visible");
AppLog.wtf("Failure Log Will be Visible");
AppLog.v("Verbose Log  Will not be Visible");
AppLog.v("-----------------------------");

请随意使用我的记录器,或者如果您有一些改进的想法,请创建 PR 或让我知道我会改进它。

答案 5 :(得分:-1)

要清晰起见,只有debugPrint才能在Flutter小部件内工作。