gpt4 book ai didi

flutter - developer.log 不打印日志

转载 作者:行者123 更新时间:2023-12-05 01:56:55 32 4
gpt4 key购买 nike

这是 another question 的副本.其实我有完全相同的问题并提供Logger.root.onRecord.listen没有帮助。还有 this answer报告 developer.log() 可用于将数据记录到 flutter 控制台。

源代码:

import 'dart:io';
import 'dart:developer' as developer;

import 'package:logging/logging.dart';

void main(List<String> arguments) {
stderr.writeln('Hello from stderr');
stdout.writeln('Hello from stdout');
print('Hello from print');

print('Logger level ${Logger.root.level}');
Logger.root.level = Level.ALL;
Logger.root.onRecord.listen((r) => print(r));
var log = Logger('MyLogger');
for (var level in Level.LEVELS) {
print('Level: $level, isLoggable: ${log.isLoggable(level)}');
log.log(level, 'Log message with level $level');
}

developer.log('Hello from developer.log');
}

产生以下输出:

/opt/java/jdk/flutter/bin/cache/dart-sdk/bin/dart --enable-asserts /home/m_pashka/Projects/tests/flutter/dart-test1/bin/dart_test3.dart
Hello from stdout
Hello from print
Logger level INFO
Level: ALL, isLoggable: true
[ALL] MyLogger: Log message with level ALL
Level: FINEST, isLoggable: true
[FINEST] MyLogger: Log message with level FINEST
Level: FINER, isLoggable: true
[FINER] MyLogger: Log message with level FINER
Level: FINE, isLoggable: true
[FINE] MyLogger: Log message with level FINE
Level: CONFIG, isLoggable: true
[CONFIG] MyLogger: Log message with level CONFIG
Level: INFO, isLoggable: true
[INFO] MyLogger: Log message with level INFO
Level: WARNING, isLoggable: true
[WARNING] MyLogger: Log message with level WARNING
Level: SEVERE, isLoggable: true
[SEVERE] MyLogger: Log message with level SEVERE
Level: SHOUT, isLoggable: true
[SHOUT] MyLogger: Log message with level SHOUT
Level: OFF, isLoggable: true
[OFF] MyLogger: Log message with level OFF
Hello from stderr

Process finished with exit code 0

没有Hello from developer.log在那里排队。我还尝试了不同的 dart 版本:2.0.0、2.13.4、2.14.4。

我使用 dart 命令行来运行示例: <dart_sdk_path>/dart-sdk/bin/dart --enable-asserts <project_path>/<file>.dart

还在 Dart Pad 中尝试了这个片段:

import 'dart:developer' as developer;

void main() {
developer.log('Hello from developer.log');
developer.log('log me', name: 'my.app.category');
print('Hello from print');
}

输出是:

Hello from print

最佳答案

正如之前Christopher Moore提到的那样developer.log() 不会向 dart 控制台打印任何内容。相反,它会发出可以被 Logging View 观察到的事件的 DevTools .您可以使用 Install and run DevTools from the command line有关如何安装和启动 DevTools 的说明和 Start the target appDart DevTools用于启动要在开发工具中观察到的 Dart 命令行应用程序的命令。

是这样的

  • # dart pub global activate devtools 安装devtools
  • # dart pub global run devtools 启动devtools(可省略)
  • # dart run --pause-isolates-on-start --observe main.dart 以连接 devtools 启动 main.dart。在此步骤中,您可以使用短 URL 并将其放入 DevTools 网络用户界面,或者只使用长链接在浏览器中打开 DevTools。
  • 打开 DevTools 网页顶部的“日志记录”选项卡,恢复应用程序执行并观察日志。

仍然不确定 Debugging Flutter apps programmatically # Logging 的正确性页面文档。它提到

Note: You can view logs in DevTools’ Logging view or in your system console. This sections shows how to set up your logging statements.

但它没有提到 stderr.writeln()Logging view 中可见但是 developer.log() 在控制台输出中不可见。也不清楚为什么日志 View 在 Intellij Idea/Android studio 中不可见。

关于flutter - developer.log 不打印日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69689138/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com