Flutter中如何通过print()来登录release模式?

问题描述 投票:0回答:3

我的网络应用程序有一个仅在配置文件和发布版本中出现的问题(小部件未正确渲染,仅产生灰色)。我想添加一些 print() 语句来帮助找出问题所在,但 print() 不会在配置文件/发布版本中将任何内容记录到 VSCode 调试输出窗口。

有什么想法可以解决这个问题吗?

我还可以使用哪些其他技术来诊断仅发布问题?

谢谢

flutter debugging logging release
3个回答
5
投票

有几种方法可以实现:

  1. 使用以下命令

    flutter logs
    
  2. 使用

    logger
    套件。

    默认实现 (DevelopmentFilter) 在调试模式下显示级别 >= Logger.level 的所有日志。在发布模式下,所有日志都会被忽略。

    为了即使在发布模式下也能显示所有日志,请创建您自己的

    LogFilter
    ,如下所示:

    class MyFilter extends LogFilter {
      @override
      bool shouldLog(LogEvent event) {
        return true;
      }
    }
    

    用途:

    void foo() {
      var logger = Logger(filter: MyFilter());
      logger.d('message');
    }
    
  3. 使用

    print
    声明(不确定这是否适用于网络)


1
投票

在生产中运行良好的同时在发布中显示灰色听起来像是错误地使用了 Expanded() 小部件。 您应该仅在 Column、Row 或 Flex 中使用 Expanded。 出于某种原因,Flutter 开发人员认为这将是使其脱颖而出的好方法......


0
投票

如果您在发布模式下没有收到任何日志,请尝试通过

cable
插入您的设备。我正在使用无线调试,这就是为什么我无法获取任何日志。

© www.soinside.com 2019 - 2024. All rights reserved.