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


Posted in Python onJune 12, 2015

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 相关文章推荐
python中引用与复制用法实例分析
Jun 04 Python
浅谈Python的异常处理
Jun 19 Python
Python实现的递归神经网络简单示例
Aug 11 Python
快速了解python leveldb
Jan 18 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
PyQt5 实现给窗口设置背景图片的方法
Jun 13 Python
python实现微信打飞机游戏
Mar 24 Python
Keras使用ImageNet上预训练的模型方式
May 23 Python
python如何利用paramiko执行服务器命令
Nov 07 Python
python代码实现猜拳小游戏
Nov 30 Python
Python Matplotlib绘制两个Y轴图像
Apr 13 Python
Python2中的raw_input() 与 input()
Jun 12 #Python
Windows下实现Python2和Python3两个版共存的方法
Jun 12 #Python
Python3中的2to3转换工具使用示例
Jun 12 #Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 #Python
搞笑的程序猿:看看你是哪种Python程序员
Jun 12 #Python
Python 3.x 新特性及10大变化
Jun 12 #Python
Python实现比较两个列表(list)范围
Jun 12 #Python
You might like
点评山进PR-D3L三波段收音机
2021/03/02 无线电
PHP常用处理静态操作类
2015/04/03 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP匿名函数(闭包函数)详解
2019/03/22 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
原生js结合html5制作小飞龙的简易跳球
2015/03/30 Javascript
js实现鼠标移到链接文字弹出一个提示层的方法
2015/05/11 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
解决VUEX的mapState/...mapState等取值问题
2020/07/24 Javascript
[00:31]2016完美“圣”典风云人物:国士无双宣传片
2016/12/04 DOTA
python 爬取微信文章
2016/01/30 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
python和c语言的主要区别总结
2019/07/07 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Python使用sqlite3模块内置数据库
2020/05/07 Python
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
美国汽车性能部件和赛车零件网站:Vivid Racing
2018/03/27 全球购物
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
《童趣》教学反思
2014/02/19 职场文书
ktv好的活动方案
2014/08/17 职场文书
大学生见习报告总结
2014/11/04 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
业务员管理制度范本
2015/08/06 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
党风廉政教育心得体会2016
2016/01/22 职场文书
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python
springboot 全局异常处理和统一响应对象的处理方式
2022/06/28 Java/Android