2016-03-19 15 views
2

他のプロセスのSTDOUTを傍受し、akkaストリーミングを介してストリームすることは可能ですか?akka経由でSTDOUTとストリームを傍受する

アルン

+0

が、これはあなたがScalaのコードから実行しますプロセスですか?たとえば、 'ls'コマンドのstdoutをストリーミングするには: ' val stdout:ソース[メッセージ、未使用] = Source.fromIterator [メッセージ](()=> Process( "ls"))。lineStream.toIterator.map line => TextMessage.Strict(line))) ' – ecoe

答えて

1

おかげですぐクロスがここand akka-userのご質問を投稿しないでください、それはそれは難しい答えた質問を追跡することができます。しばらくしてから回答がない場合は、投稿を渡すのは大丈夫ですが、すぐに回答しないでください。

Javaでstdoutを「インターセプト」するには、SystemオブジェクトのsetOutを使用できます。それはここで、我々はOutputStreamの「橋」アッカストリームを提供することをラップすることによって作成することができますPrintWriterを、取る方法は次のとおりです。

val is: OutputStream = StreamConverters.asOutputStream() 
    .to(Sink.foreach(println)) // your logic pipeline here 
    .run() 
System.setOut(new PrintStream(is)) 
関連する問題