Flutter/Dart - 将所有子进程的输出打印到标准输出

Flutter/Dart - Print output of all child processes to stdout

我正在开发一个 Flutter 桌面应用程序,它在某些时候 运行 是 Process。对于这个过程,我想读取输出并根据它在 Flutter 中做一些事情。我遇到的问题是,并非所有输出都通过 process.stdout 显示,即我也想阅读的一些 INFO 日志。

这是(非常简单的)代码:

Process process = await Process.start(
    "cwltool",
    [
        "--verbose",
        "Oesophageal-varices.cwl",
        "Oesophageal-varices-inputs.yml"
    ],
);

await process.stdout
    .transform(utf8.decoder)
    .forEach(print)

有了这个,输出只有:

{
    "cases": {
        "location": "file:///somelocation/oesophageal-varices-cases.csv",
        "basename": "oesophageal-varices-cases.csv",
        "class": "File",
        "checksum": "sha1[=12=]b3f04bbeaac24499166fd56d93ad8bd6acb9ca8",
        "size": 670,
        "path": "/somelocation/oesophageal-varices-cases.csv"
    }
}

但是当我 运行 在终端中执行相同的过程时,它还会打印 INFO 日志,这是我在 Flutter 中迫切需要的。我怀疑下面的 python 子进程完成的日志记录没有传递给 process.stdout,因此它们没有打印。

我如何使用 Dart 访问 INFO 日志?

正如 pskink 评论的那样,有趣的是,日志将 process.stderr