0

就像在主题中一样 - 当任何内容打印到错误流中时,我正在尝试执行操作,但下面的代码不起作用:

try {
    System.setOut(new PrintStream("InfoLog.txt"));
    System.setErr(new PrintStream(new FileOutputStream("ErrorLog.txt") {
        public void write(int b) throws IOException {
            super.write(b);
            error();
        }
        public void write(byte[] b) throws IOException {
            super.write(b);
            error();
        }
    }));
} catch (FileNotFoundException ex) {
    Logger.getLogger(HouseCalc.class.getName()).log(Level.SEVERE, null, ex);
}

有没有办法“捕捉” System.err 流并在它被打印到文件之前进行任何操作?

4

1 回答 1

0

确保覆盖适当的方法。好好看看来源PrintStream,因为他们可能会互相调用。你想一路走下去。

write(char cbuf[], int off, int len)

可能是你真正需要的。

于 2013-05-08T17:59:13.760 回答