0
私は別のプロセスを開始し、すべての標準出力と標準エラーをSLF4Jに記録しようとしているかなり単純なJavaコードを持っています。出力がプロセスから読み込みを停止します
私は私が見ているものよりもはるかに出力があることを確信しているものの残念ながら、私は、私はそれよりも多くの出力を見ることはない、私のプロセスからの出力の非常に最初の行を取得していますthis.service.serverProcess = Runtime.getRuntime().exec(arguments);
this.service.serverIsRunning = true;
BufferedReader serverStdout = new BufferedReader(new InputStreamReader(
this.service.serverProcess.getInputStream()), 16);
BufferedReader serverStderr = new BufferedReader(new InputStreamReader(
this.service.serverProcess.getErrorStream()), 16);
String stdoutLine = null;
String stderrLine = null;
while ((stdoutLine = serverStdout.readLine()) != null ||
((stderrLine = serverStderr.readLine()) != null)) {
if (stdoutLine != null && stdoutLine.trim().length() > 0)
logger.info("{}", stdoutLine);
if (stderrLine != null && stderrLine.trim().length() > 0)
logger.error("{}", stderrLine);
}
try { this.service.serverProcess.waitFor(); } catch (InterruptedException e) {};
this.service.serverIsRunning = false;
。
ここで何が問題になりますか?イベントが発生するとただちにログを記録しておきたいと思います。出力は重要なものです。プロセスのSTDOUTとSTDERRの出力をすべて取得するにはどうすればよいですか?