2011-10-21 7 views
3

私はより大きなフレームワークにプラグインするJavaクラスを作成しています。上流のどこかで、コードがSystem.outを標準出力以外の場所にリダイレクトしていますが、私は本当に標準出力にデバッグメッセージを出力したいと思います。私が標準に戻ってフックを取得する方法はありますか?Javaのコンソールに戻る

+0

どこを指しているのかを調べ、*その*を標準出力に戻しますか? – fredley

答えて

1

なぜ使用しないのですかSystem.err

私が見る最も簡単な解決策は、ライブラリを呼び出す前にクラスのどこかにSystem.outを保存することです。

少し見た後、System.console().printf(...)を使用できるはずです。

+0

System.errも食べているようです。私は川下のクラスですので、私は呼び出し側を変更するオプションがありません。 System.console()。printfは動作するはずです。私はそれを試してみましょう。 –

0

あなたは、単に書くことができます。

System.setOut(System.out); 
+2

これは同義語ではありませんか? –

2

おそらく、簡単に解決策がメッセージをデバッグするためSystem.errの代わりにはSystem.outを使用することですか?それはずっと簡単で、そのリダイレクトの副作用を導入しません。

+1

同様に、System.errに書き込むConsoleHandlerを使用して、Java Loggerを使用することもできます。これはもう少し作業ですが、開発環境外のデバッグメッセージにアクセスすることができます。 –

+0

System.errも食べているようです。 –

関連する問題