一般情况下,在记录日志时,只能把通过API进行记录的信息写入自 解决的办法就是重写System.out和System.err,让System.out,System.err的写入转向到你的日志文件,这样只要在控制台的所有的输出信息都会被记录到日志文件中. 例如可以在系统进行初始化时进行这样的操作: 重写System.out : PrintStream printStreamOut = new PrintStream(outputStreamOut); System.setOut(printStreamOut); 重写System.err PrintStream printStreamErr = new PrintStream(outputStreamErr); System.setErr(printStreamErr); 这里的outputStreamOut,和outputStrea 现在重定向输出的问题解决了,可以又出现了一个新的问题: 在控制台上看不到任何输出信息,输出的信息全部被定向到日志文件中 要解决这个问题还需要自己实现一个OutputStream 首先继承java.io.OutputStream,然后实现public abstract void write(int b) throws IOException; 并且覆写java.io.OutputStream中的其他的方法,具体的实现方式按照自己的需求来做,这里就不做出具体的实现了. 通过实现自己实现OutputStream之后, 在 PrintStream printStreamOut = new PrintStream(outputStreamOut); PrintStream printStreamErr = new PrintStream(outputStreamErr); 中分别把outputStreamOut和outputStrea 按照以上的思路进行的实现,可以完全把控制台的所有的输出写入到日 snoics |
|