1

我正在开发一个 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$0b3f04bbeaac24499166fd56d93ad8bd6acb9ca8",
        "size": 670,
        "path": "/somelocation/oesophageal-varices-cases.csv"
    }
}

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

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

4

1 回答 1

2

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

于 2021-12-06T16:14:46.797 回答