捕获控制台的所有输出信息
来源:百度文库 编辑:神马文学网 时间:2024/05/27 08:27:12
一般情况下,在记录日志时,只能把通过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,和outputStreamErr都是自定义的重定向的日志文件的OutputStream
现在重定向输出的问题解决了,可以又出现了一个新的问题: 在控制台上看不到任何输出信息,输出的信息全部被定向到日志文件中.
要解决这个问题还需要自己实现一个OutputStream,让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和outputStreamErr对象换成自己实现的OutputStream对象,这样就可以实现在一个OutputStream对象中进行多个输出操作.
按照以上的思路进行的实现,可以完全把控制台的所有的输出写入到日志文件中, 包括System.out.println这样的输出.
snoics
解决的办法就是重写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,和outputStreamErr都是自定义的重定向的日志文件的OutputStream
现在重定向输出的问题解决了,可以又出现了一个新的问题: 在控制台上看不到任何输出信息,输出的信息全部被定向到日志文件中.
要解决这个问题还需要自己实现一个OutputStream,让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和outputStreamErr对象换成自己实现的OutputStream对象,这样就可以实现在一个OutputStream对象中进行多个输出操作.
按照以上的思路进行的实现,可以完全把控制台的所有的输出写入到日志文件中, 包括System.out.println这样的输出.
snoics
捕获控制台的所有输出信息
C#控制台输出方法详解 - 翔宇亭乐园
信息输出输入的好坏,直接影响到人类的身心健康
浅析课堂教学效果与信息输出的有效性
主力的捕获
主力的捕获
windows操作系统故障修复控制台的使用方法
再论Session事件的捕获
第一个VB.NET控制台应用程序——欢迎信息显示
STM32 在 KEIL 下使用 SWV 输出调试信息
用脚本自动检测硬件信息,再用脚本Excel输出
手工创建VC++6控制台工程的过程及命令
如何安装和使用 Windows XP 的故障恢复控制台
如何安装和使用 Windows XP 的故障恢复控制台
手工创建VC++6控制台工程的过程及命令
xp故障恢复控制台和它的命令
详细的xp修复控制台命令和用法 2
电视接收机的输入/输出信号
PLC晶体管输出与继电器输出的区别
整店输出,输出的不只是概念!
基金经理:长线大牛股是这样捕获的
Google捕获DoubleClick后的中国速度
蔡孟坚:我捕获顾顺章的经过
最会捕获“女人心”的男人