【问题标题】:switching between debugging and production mode在调试和生产模式之间切换
【发布时间】:2019-03-19 12:16:48
【问题描述】:

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

print($data)

有没有办法在切换到生产模式时停止打印,这样不会影响应用程序的性能?

例如一个布尔值作为开关?

【问题讨论】:

    标签: dart flutter


    【解决方案1】:

    您可以使用debugPrint 而不是print 仅用于开发日志记录

    debugPrint(data)
    

    debugPrint 实现可以在环境之间进行更改。例如在你的 main 你可以这样做:

    void main() {
      bool isInRelease = true;
    
      assert(() { isInRelease = false; return true; }());
    
      if (isInRelease) {
        debugPrint = (String? message, { int? wrapWidth }) {};
      }
    }
    

    这会将debugPrint 的实现替换为在发布中什么都不做的东西

    【讨论】:

    【解决方案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

    【讨论】:

    • 我想我快了一秒:p
    • 看起来像:D
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 2013-12-14
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-07
    相关资源
    最近更新 更多