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

Dart服务端使用logger包,命令行运行及编译后无法打印日志的问题求助

Dart服务端使用logger包,命令行运行及编译后无法打印日志的问题求助

各位好,我现在用Dart开发服务端脚本,用到了logger包。在IDE里运行项目时,日志打印完全正常,但如果通过命令行执行:

dart my_server.dart

控制台完全没有日志输出。我尝试把脚本编译成可执行文件后运行,结果还是一样——没有任何日志内容打印出来。

我曾误以为print方法不会被包含在可执行文件中,于是把自定义的ConsoleOutput类从:

class ConsoleOutput extends LogOutput {
  @override
  void output(OutputEvent event) {
    for (var line in event.lines) {
      print(line);
    }
  }
}

修改为:

class ConsoleOutput extends LogOutput {
  @override
  void output(OutputEvent event) {
    for (var line in event.lines) {
      stdout.write(line);
    }
  }
}

不过后来我发现自己的理解有误——print其实是会被包含在可执行文件里的,但不管用哪种实现方式,命令行环境下始终没有日志输出。

我的logger配置如下:

var logger = Logger(
  printer: PrettyPrinter(
    methodCount: 2,
    // 要显示的方法调用层数
    errorMethodCount: 8,
    // 提供栈追踪时显示的方法调用层数
    lineLength: 120,
    // 输出内容的宽度
    colors: true,
    // 彩色日志信息
    printEmojis: false,
    // 不为每条日志打印表情
    printTime: true // 每条日志是否包含时间戳
  ),
  output: ConsoleOutput(),
);

同时在main函数里设置了日志级别:

void main() {
  Logger.level = Level.trace;
  // 其他业务代码...
}

再强调一次,在IDE内运行时所有日志都能正常输出,可命令行运行和编译后就毫无动静,实在搞不清楚哪里出了问题,有没有大佬能帮我看看我漏掉了什么?

提前感谢各位的帮助!

备注:内容来源于stack exchange,提问作者Claudio Grasso

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 09:35:29