1

問題は...私はライブラリのDefaultExecutorクラスでプロセスを実行しています。org.apache.commons.execこのような:

public class Main {

public static void main(String[] args) throws IOException, InterruptedException {

    CommandLine cmd = new CommandLine("java");
    DefaultExecutor exec = new DefaultExecutor();
    exec.setExitValue(1);
    exec.execute(cmd);
}

その出力を別のスレッドで「実行中」に取得して、他の場所に記録する必要があります。それを達成するための最良の方法は何ですか?

4

2 に答える 2

1

とを使用しPipedOutputStreamますPipedInputStreamここに例があります。ストリームを忘れないでください。close

于 2011-09-25T11:59:13.860 に答える
0

あなたはおそらくlog4j、Apacheからのかなり有用なプロジェクトを見る必要があります。私が最近取り組んでいたプロジェクトではlog4j、さまざまなスレッドからのすべてのログを1つの便利なファイルに入れるために使用されました。ロガーのインスタンスが1つだけ使用できるようにロガーを作成するようにしてください。これにより、問題が解決するはずです。

残念ながら、私はインターンであり、チームがロギングシステムをセットアップしたときに出席していなかったため、実際に構成を支援することはできません。幸いなことに、プロジェクトのWebサイトには、役立つドキュメントがたくさんあるようです。

于 2011-09-17T16:59:44.037 に答える