【发布时间】:2019-03-19 12:16:48
【问题描述】:
在开发过程中调试应用程序的一种快速方法是编写如下语句:
print($data)
有没有办法在切换到生产模式时停止打印,这样不会影响应用程序的性能?
例如一个布尔值作为开关?
【问题讨论】:
在开发过程中调试应用程序的一种快速方法是编写如下语句:
print($data)
有没有办法在切换到生产模式时停止打印,这样不会影响应用程序的性能?
例如一个布尔值作为开关?
【问题讨论】:
您可以使用debugPrint 而不是print 仅用于开发日志记录
debugPrint(data)
debugPrint 实现可以在环境之间进行更改。例如在你的 main 你可以这样做:
void main() {
bool isInRelease = true;
assert(() { isInRelease = false; return true; }());
if (isInRelease) {
debugPrint = (String? message, { int? wrapWidth }) {};
}
}
这会将debugPrint 的实现替换为在发布中什么都不做的东西
【讨论】:
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
【讨论】: