Hello Flutter Devs :)
我是初学者并使用IntelliJ IDEA,我想将数据记录到控制台?
我尝试了print()
和printDebug()
,但我的数据都没有显示在Flutter控制台中。
答案 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()。
答案 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.
并添加到您的项目中,然后像这样使用它:
示例:
输入
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 示例
隐藏所有信息和调试日志: 输出 请随意使用我的记录器,或者如果您有一些改进的想法,请创建 PR 或让我知道我会改进它。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("-----------------------------");
答案 5 :(得分:-1)
要清晰起见,只有debugPrint才能在Flutter小部件内工作。