与主题相似 - 我正在尝试在将任何内容打印到错误流中时执行操作,但下面的代码不起作用:
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流并在打印到文件之前进行任何操作?
答案 0 :(得分:0)
确保覆盖适当的方法。仔细查看PrintStream
的来源,因为他们可能会互相调用 。你想要一路走下去。
write(char cbuf[], int off, int len)
可能是你真正需要的那个。