developer.log不打印日志



这是另一个问题的重复。实际上我也有同样的问题,提供Logger.root.onRecord.listen没有帮助。此外,此回答报告developer.log()可用于将数据记录到颤振控制台。

源代码:

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

也试过在记事本中输入这个片段:

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控制台打印任何内容。相反,它发出的事件可以被DevTools的日志视图观察到。你可以使用Install和run DevTools从命令行获取如何安装和启动DevTools的说明,并启动Dart DevTools的目标应用程序部分,以启动要在dev工具中观察到的Dart命令行应用程序。

就像

  • # dart pub global activate devtools安装devtools
  • # dart pub global run devtools启动devtools
  • # dart run --pause-isolates-on-start --observe main.dart启动主服务器。Dart与devtools连接。在此步骤中,您可以使用短URL并放入DevTools web UI,也可以使用长链接在浏览器中打开DevTools。
  • 打开"Logging"选项卡,恢复应用程序执行并观察日志。

仍然不确定以编程方式调试Flutter应用程序的正确性#日志页面文档。它提到了

注意:您可以在DevTools的日志视图或系统控制台查看日志。本节展示如何设置日志记录语句。

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

**打印地图数据的日志有问题,你需要尝试这个包**

日志记录器

使用这个,你可以很容易地在下面列出的不同标签下打印不同类型的响应

logger.v("Verbose log");
logger.d("Debug log");
logger.i("Info log");
logger.w("Warning log");
logger.e("Error log");
logger.wtf("What a terrible failure log");

相关内容

  • 没有找到相关文章

最新更新