记录文本流

时间:2016-10-02 17:58:25

标签: elixir

我有一个Elixir应用程序,我使用Porcelain生成一个外部进程。生成的进程'STDOUT可作为proc.out的文本流(#Function<59.89908360/2 in Stream.unfold/2>形式)提供给我。

我可以使用IO.stream/2逐行打印流的内容,但我明确希望使用Logger.info来执行此操作。这就是目前的情况:

proc = Porcelain.spawn("node", ["/path/to/node/server.js"], [out: :stream])
stream = proc.out
Enum.into(stream, IO.stream(:stdio, :line))

我目前正在尝试:

  • [out: Logger.info]
  • Enum.into(proc.out, Logger.info)

1 个答案:

答案 0 :(得分:1)

Enum.map/2Enum.each/2都通过迭代流线并应用Logger.info来解决我的问题。但是@dogbert pointed outeach可能更快,更适合这种情况:

Enum.each(stream, &Logger.info/1)