【发布时间】:2014-01-28 12:10:38
【问题描述】:
我希望我的 Dart 程序打印到浏览器的开发控制台。如何打印到控制台(例如 DevTools 的控制台)?
【问题讨论】:
标签: dart
我希望我的 Dart 程序打印到浏览器的开发控制台。如何打印到控制台(例如 DevTools 的控制台)?
【问题讨论】:
标签: dart
使用print() 将字符串打印到浏览器的控制台:
import 'dart:html';
main() {
var value = querySelector('input').value;
print('The value of the input is: $value');
}
您将看到一条消息打印到开发者控制台。
【讨论】:
如果您在这里是为了Flutter,那么您应该使用debugPrint。
这是相同的文档文本。
/// Prints a message to the console, which you can access using the "flutter"
/// tool's "logs" command ("flutter logs").
/// By default, this function very crudely attempts to throttle the rate at
/// which messages are sent to avoid data loss on Android. This means that
/// interleaving calls to this function (directly or indirectly via, e.g.,
/// [debugDumpRenderTree] or [debugDumpApp]) and to the Dart [print] method can
/// result in out-of-order messages in the logs.
您可能会受到 SDK 版本限制,因为它仅适用于 2.2 及更高版本。
【讨论】:
还有来自import 'dart:developer' 库的log()。
示例:
int name = "Something";
log("ClassName: successfully initialized: $name");
//output
[log] ClassName: successfully initialized: Something
请注意,log 和 debugPrint 采用的 String 值与 print 不同。因此,您必须在最后添加 .toString() 或使用字符串插值,就像我在上面的示例中使用的那样。
您有两个选项可用于记录您的应用程序。第一个是 使用
stdout和stderr。通常,这是使用print()完成的 语句,或通过导入dart:io并在stderr上调用方法和stdout。例如:
stderr.writeln('print me');如果你一次输出太多,那么 Android 有时会丢弃一些 日志行。为避免这种情况,请使用 Flutter 的
foundation中的debugPrint()图书馆。这是应用程序日志记录的另一个选项是使用
dart:developerlog()函数。这允许您包含更多的粒度和 日志输出中的信息。这是一个例子:import 'dart:developer' as developer; void main() { developer.log('log me', name: 'my.app.category'); developer.log('log me 1', name: 'my.other.category'); developer.log('log me 2', name: 'my.other.category'); }您还可以将应用程序数据传递给日志调用。该公约为 这是使用错误:
log()调用上的命名参数,JSON 对要发送的对象进行编码,并将编码后的字符串传递给 错误参数。import 'dart:convert'; import 'dart:developer' as developer; void main() { var myCustomObject = ...; developer.log( 'log me', name: 'my.app.category', error: jsonEncode(myCustomObject), ); }如果在 DevTool 的日志视图中查看日志输出,JSON 编码错误参数被解释为数据对象并呈现在 该日志条目的详细信息视图。
【讨论】:
Dart print() 函数在不同环境下的工作方式不同。
print() 在基于控制台的应用程序中使用时,它会在终端控制台中输出print() 在基于 Web 的应用程序中使用时,它会输出到开发者控制台。void main() {
print("HTML WebApp");
}
【讨论】:
我知道 dartpad 支持的唯一方法是使用print();
顺便说一下,Dart 使用 ${} 语法来表示表达式,或者只是 $ 表示单个值。
例如:-
int x=3;
print('hello world') ;
print(x) ;
print('x = $x') ;
她是文档的链接 print method!
【讨论】: