You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter logger 1.3.0无法在Xcode控制台输出问题求助

问题:logger 1.3.0无法在iOS Xcode控制台输出日志

我使用Flutter Stable 3.3.5、Dart 2.18.2以及logger 1.3.0包编写了代码,Android的Logcat中可正常查看应用生命周期状态变化的日志,但iOS的Xcode控制台里完全看不到logger输出的内容,只有print语句能正常显示。相关代码如下:

import 'package:log_printer.dart';
class MyApp extends StatefulWidget {
 
  @override
  State<StatefulWidget> createState() => _MyAppState();
}

 class _MyAppState extends State<MyApp> with WidgetsBindingObserver {
  final logger = getLogger('Lifecycle change');
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
     
    switch (state) {
      case AppLifecycleState.resumed:
        print("resume");
        logger.v("resume");
        break;
      case AppLifecycleState.inactive:
        print("inactive");
        logger.v("inactive");
        break;
      case AppLifecycleState.paused:
        print("paused");
        logger.v("paused");
        break;
      case AppLifecycleState.detached:
        print("detached");
        logger.v("detached");
        break;
    }
  }
}

解决办法

1. 检查logger的输出级别配置

logger 1.3.0默认的输出级别可能在iOS环境下限制了verbose级别的日志。初始化logger时明确设置输出级别为Level.verbose:

final logger = Logger(
  level: Level.verbose,
  printer: PrettyPrinter(), // 若用自定义打印器,确保级别配置正确
);

2. 调整Xcode控制台过滤设置

Xcode可能默认过滤了低级别日志:

  • 打开Xcode控制台,点击顶部过滤框,选择All Messages,取消任何自定义过滤条件。
  • 也可以尝试在过滤框输入你的日志标签Lifecycle change,精准查找logger输出。

3. 升级logger包到最新版本

logger 1.3.0是较旧的版本,存在iOS平台适配bug的概率较高。更新pubspec.yaml中的依赖:

dependencies:
  logger: ^2.0.2+1 # 替换为当前最新稳定版

执行flutter pub get后重新运行项目测试。

4. 排查自定义LogPrinter的逻辑

你导入了自定义的log_printer.dart,如果这个打印器只针对Android做了适配(比如仅调用Android Logcat API),iOS端就不会输出日志。可以临时替换为logger默认的PrettyPrinter测试,确认是否是自定义打印器的问题。

5. 确认运行模式

如果是在release模式下运行iOS应用,Flutter会默认关闭debug日志输出,包括logger的日志。确保在debug模式下测试,或者如果必须在release模式输出,需要手动配置logger强制输出(不推荐,会影响性能)。


内容的提问来源于stack exchange,提问作者VanCoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:23:15