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

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

我试了 print()printDebug(),但没有一个数据显示在扑动控制台中。

213146 次浏览

如果你在颤动 Widget里面,你可以使用 debugPrint,例如,

import 'package:flutter/foundation.dart';


debugPrint('movieTitle: $movieTitle');

或者,使用 Dart 内置的 log()函数

import 'dart:developer';


log('data: $data');

为了清晰起见,debugPrint只能在 Flutter 小部件中工作。

Dart 打印()函数输出到系统控制台,您可以使用 flutter log (基本上是 adb logcat 的包装器)查看该控制台。

如果一次输出太多,那么 Android 有时会丢弃一些日志行。为了避免这种情况,可以使用 Debug 打印()

在这里发现: https://flutter.io/docs/testing/debugging

Log ()来自“ dart: developer’”

  • 它似乎没有像 print()debugPrint()那样的最大长度限制。

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

  • 并且还可以帮助 dart dev 工具显示格式化的日志记录。

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

我在代码中使用 print () ,它在调试控制台中打印。

你可以使用 Logger 软件包,它简单易用

从这里退房

或者,我已经为 Flutter Apps 创建了一个 Logger: https://github.com/hiteshsahu/Flutter-Logger

只需复制 AppLog.dart并添加到您的项目,并像这样使用它:

  1. I (“信息消息”) ;//简单信息消息
  2. I (“ Home Page”,标签: “ User Logging”) ;//Info 消息和标识符 TAG

例子:

输入

    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("-----------------------------");

产出:

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: -----------------------------

还可以为日志级别设置筛选器

将隐藏 log.setLogLevel (log _ 丁优先级) ;//log 以下的日志

优先顺序永远是:

VERBOSE < = log _ 堆优先级 < = FAILURE

优先级: 冗长 < DEBUG < INFO < 警告 < 错误 < 失败

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

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("-----------------------------");

输出

WARN⚠️|FlutterApp: Warn Log Will be Visible
ERROR⚠️|️FlutterApp: Error Log Will be Visible
WTF¯\_(ツ)_/¯|FlutterApp: Failure Log Will be Visible

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

“导入‘ dart: 开发人员’作为开发人员;”

然后

Log (’$var’)

我将命令打印到 logPrint

在 Android Studio 中调试 Emulator.EMULATOR等于“我会看到日志”

在生产或测试中,我将它设置为一个数字

const bool debugMode = (Emulator.EMULATOR=="");
void logPrint(String _s) {
if(debugMode){
print(_s);
}
}
class Emulator {
static const EMULATOR = String.fromEnvironment('EMULATOR', defaultValue: "");
}