Ich habe eine Elixir-App, in der ich einen externen Prozess unter Verwendung Porcelain
spawn. Der erzeugte Prozess 'STDOUT steht mir als Textfluss als proc.out
(in Form von #Function<59.89908360/2 in Stream.unfold/2>
) zur Verfügung.Einen Stream des Textes protokollieren
Ich bin in der Lage, den Inhalt des Streams Zeile für Zeile mit IO.stream/2
zu drucken, aber ich möchte es explizit mit Logger.info
tun. Dies ist, was es sieht derzeit wie:
proc = Porcelain.spawn("node", ["/path/to/node/server.js"], [out: :stream])
stream = proc.out
Enum.into(stream, IO.stream(:stdio, :line))
habe ich noch versucht:
[out: Logger.info]
Enum.into(proc.out, Logger.info)
'Enum.each' könnte etwas schneller sein und mehr idiomatische da Sie nicht den Rückgabewert von' Logger.info nicht benutzen wollen/1'. – Dogbert
Danke @dogbert. Ich werde das benutzen. – Sheharyar