重定向输出流实现程序日志
Posted JohnEricCheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向输出流实现程序日志相关的知识,希望对你有一定的参考价值。
实例说明:
System类中的out成员变量是Java的标准输出流,程序中经常用他来输出调试信息。out成员变量被定义成final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。
1 package com.zeone.lifeline.test; 2 3 import java.io.PrintStream; 4 5 public class RedirectOutputStream { 6 public static void main(String[] args) { 7 try { 8 PrintStream out = System.out; 9 PrintStream ps = new PrintStream("log.txt"); 10 System.setOut(ps); 11 int age = 18; 12 System.out.println("年龄变量成功定义,初始值未18"); 13 String sex = "女"; 14 System.out.println("性别变量成功定义,初始值未女"); 15 //整合两个变量 16 String info = "这是一个"+sex+"孩子,今年"+age+"岁了。"; 17 System.out.println("整合两个变量为info字符串变量,其结果是:"+info); 18 System.setOut(out); 19 System.out.println("程序运行完毕,请查看日志文件。"); 20 }catch(Exception e) { 21 e.printStackTrace(); 22 } 23 } 24 }
程序输出:
技术要点:
1、setOut:
重新分配System类的标准输出流。
方法声明:public static void setOut(PrintStream out)
参数说明:out:新的PrintStream输出流对象
2、setErr():
重新分配System类的标准错误输出流。
方法声明:public static void setErr(PrintStream err)
参数说明:err:新的PrintStream输出流对象
3、setIn():
重新分配System类的in成员变量。
方法声明:public static void setIn(PrintStream in)
参数说明:in:新的PrintStream输出流对象
以上是关于重定向输出流实现程序日志的主要内容,如果未能解决你的问题,请参考以下文章