在 flutter 中打印语句

Dam*_*oid 6 dart flutter

打印语句对于调试 flutter 中的 dart 代码非常有用。有人知道不从发布版本的代码中删除它们的影响吗?

jam*_*lin 7

由于可能不必要的 I/O,print/debugPrint语句可能会损害性能。他们还会向设备日志发送垃圾邮件。

此外,由于此类语句对于任何检查设备日志的内容都是可见的,因此它们很容易泄露最好保密的信息(例如用户名和密码)。

我建议使用类似的东西package:logging来代替。这样,您可以提供使用debugPrint但可以调整日志记录级别的回调,以便按严重性轻松启用或禁用消息(并且可以在调试版本中启用额外的日志记录)。

package:logging文档提供了一个示例,但稍微调整它以在调试和发布版本之间具有不同的日志记录级别:

import 'package:logging' as log;

void main() {
  // Log everything in debug builds.  Log warnings (and up) in release builds.
  log.Logger.root.level = kDebugMode ? log.Level.ALL : log.Level.WARNING;
  log.Logger.root.onRecord.listen((log.LogRecord rec) {
    print('${rec.level.name}: ${rec.time}: ${rec.message}');
  });

  // ...
}
Run Code Online (Sandbox Code Playgroud)