Java中重定向输出流实现用文件记录程序日志

yipeiwu_com5年前Python基础

System中的out,error都是final类型的,不能做改动。但通过setOut()可以设置新的输出流,从而实现写日志的功能。

import java.io.PrintStream; 
import java.io.FileNotFoundException; 
public class RedirectOutputStream { 
  public static void main(String arg[]){ 
    try{ 
      PrintStream out = System.out; //保留原输出流 
      PrintStream ps = new PrintStream("./log.txt");//创建文件输出流 
      System.setOut(ps); //设置使用新的输出流 
      int age = 18; 
      System.out.println("年龄变量成功定义,初始值为:18"); 
      String sex = "女"; 
      System.out.println("性别变量成功定义,初始值为:女"); 
      String info = "这个是"+ sex +"孩子,应该有"+age+"岁"; 
      System.out.println("整合两个变量为info字符串变量,其结果为"+info); 
      System.setOut(out); //恢复原有输出流 
      System.out.println("程序运行完毕,请查看日志文件。"); 
    } 
    catch(FileNotFoundException e){ 
      e.printStackTrace();} 
  } 
} 

日志如下:

年龄变量成功定义,初始值为:18 
性别变量成功定义,初始值为:女 
整合两个变量为info字符串变量,其结果为这个是女孩子,应该有18岁 

总结:

该方法中保存了System类的out成员变量为临时变量,然后创建新的文件输出流,并把这个输出流设置为System类的新是输出流。并将持续的调试信息输出到日志中去。主要方法:

1. setOut()方法: 重新分配System类的标准输出流。
2. setErr()方法:  重新分配System类的标准错误输出流。
3. setIn()方法:    重新分配System类的标准输入流。

相关文章

Python流行ORM框架sqlalchemy安装与使用教程

本文实例讲述了Python流行ORM框架sqlalchemy安装与使用。分享给大家供大家参考,具体如下: 安装 http://docs.sqlalchemy.org/ 1、安装 #进...

windows及linux环境下永久修改pip镜像源的方法

windows及linux环境下永久修改pip镜像源的方法

一、在windows环境下修改pip镜像源的方法(以python3.5为例) (1):在windows文件管理器中,输入 %APPDATA% (2):会定位到一个新的目录下,在该目...

python strip()函数 介绍

描述 Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)。 语法 strip()方法语法: str.strip([chars]); 参数 chars -- 移除...

Python登录并获取CSDN博客所有文章列表代码实例

Python登录并获取CSDN博客所有文章列表代码实例

分析登录过程 这几天研究百度登录和贴吧签到,这百度果然是互联网巨头,一个登录过程都弄得复杂无比,简直有毒。我研究了好几天仍然没搞明白。所以还是先挑一个软柿子捏捏,就选择CSDN了。 过程...

浅谈python中的占位符

占位符,顾名思义就是插在输出里站位的符号。我们可以把它理解成我们预定饭店。当我们告诉饭店的时候,饭店的系统里会有我们的预定位置。虽然我们现在没有去但是后来的顾客就排在我们后面。 常见的占...