Flutter: 日志记录器

6
我正在使用 https://pub.dartlang.org/packages/logging,但是它没有在我的日志中显示任何内容。这是我的代码:
class Test {

  final Logger log = new Logger('testLogger');

  Future<String> join() async {
    try {
      return await func();
    } on Exception catch (e) {
        log.severe('access denied!');
        return null;
  }

}

1
在Flutter中,最好使用debugPrint()而不是print() - 我已更新我的答案。 - Günter Zöchbauer
有什么区别? - Little Monkey
1
https://docs.flutter.io/flutter/foundation/debugPrint.html 它在Android设备上的效果更好,因为如果速率过高,这些设备可能会丢弃日志输出。 - Günter Zöchbauer
1个回答

6

您需要注册一个日志记录器。

来自https://pub.dartlang.org/packages/logging

main() {
  Logger.root.level = Level.ALL;
  Logger.root.onRecord.listen((LogRecord rec) {
    debugPrint('${rec.level.name}: ${rec.time}: ${rec.message}');
  });
  runApp(...);
}

你可以设置日志报告器将日志写入文件或某些日志服务器,...

如何拥有一个写入文件的日志报告器? - Iván Yoed
只需打开文件并写入其中,而不是使用debugPrint(...) - Günter Zöchbauer
嘿,谢谢!我对Flutter还比较新,所以我需要查看日志包的文档来了解如何做到这一点。你介意给我一个例子吗? - Iván Yoed
1
这与日志记录包无关,只与打开文件、写入内容和关闭文件有关。所有与日志记录相关的内容都在 Logger.root.onRecord 和传递的参数 LogRecord rec 中。listen 是与 Stream 相关的,而 {...} 内部的部分只是您的自定义代码,您可以处理 LogRecord 并根据需要进行操作。 - Günter Zöchbauer
太好了!我明白了,非常感谢。我会去查看的。Dankeschön! - Iván Yoed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接