在调试和生产模式之间切换

时间:2019-03-19 12:16:49

标签: dart flutter

在开发时调试应用的一种快速方法是编写如下语句:

print($data)

是否有一种方法可以在切换到生产模式时停止打印,从而不会影响应用程序的性能?

例如布尔值作为开关?

2 个答案:

答案 0 :(得分:3)

您可以使用debugPrint代替print进行仅开发人员的日志记录

debugPrint(data)

debugPrint实现可以在环境之间进行更改。例如,在您的主目录中,您可以执行以下操作:

void main() {
  bool isInRelease = true;

  assert(() { isInRelease = false; return true }());

  if (isInRelease) {
    debugPrint = (String message, { int wrapWidth }) {}
  }
}

这将用发布中不执行任何操作的方式替换debugPrint的实现

答案 1 :(得分:2)

https://docs.flutter.io/flutter/foundation/debugPrint.html将允许这样做。 文档没有告诉您是否以生产模式打印,但是您可以运行其他main()来为debugPrint分配无操作功能。

另一种方法是使用How do I build different versions of my Flutter app for qa/dev/prod?或断言把戏Does Flutter remove debug-mode code when compiling for release?覆盖debugPrint