我有一个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)
答案 0 :(得分:1)
Enum.map/2
和Enum.each/2
都通过迭代流线并应用Logger.info
来解决我的问题。但是@dogbert pointed out,each
可能更快,更适合这种情况:
Enum.each(stream, &Logger.info/1)