標準出力に出るメッセージ
かなり昔に作った Java のライブラリを久しぶりに使った。まさか他の用途で使うなんて思ってなかった。そのライブラリは、標準出力にメッセージを出していた。
このメッセージを標準出力に出したくないんだけど、もとのコードは変更したくない。どうしようかと10秒くらい考えたら、簡単な解決策を思いついた。(^^)
PrintStream stdout = System.out; String name = getNullDeviceName(); PrintStream ps = new PrintStream(new FileOutputStream(name)); System.out = ps;
もとのコードでは System.out に出力しているので、その System.out を別のものに置き換えてしまえば、もとのライブラリが出力していたメッセージは出なくなる。
気になるのは、こうやってしまうと、後でデバッグしたくなったときに System.out にメッセージを出して確認しようとしても、まったく出なくなってしまう点。「なんで System.out にメッセージがでないんだよう」と未来の誰かがおろおろしそうな気がする。