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算法学习之计数排序实例
Dec 18 Python
使用python编写脚本获取手机当前应用apk的信息
Jul 21 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
Python 比较两个数组的元素的异同方法
Aug 17 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
python将一组数分成每3个一组的实例
Nov 14 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
python tkinter之 复选、文本、下拉的实现
Mar 04 Python
python获取时间戳的实现示例(10位和13位)
Sep 23 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python 对xml解析的示例
Feb 27 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
php中用数组的方法设置cookies
2011/04/21 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
js常见表单应用技巧
2008/01/09 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
js导航菜单(自写)简单大方
2013/03/28 Javascript
js中substr,substring,indexOf,lastIndexOf的用法小结
2013/12/27 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
2016/12/25 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
Python使用minidom读写xml的方法
2015/06/03 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
开启Django博客的RSS功能的实现方法
2020/02/17 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
网站域名和主机:Domain.com
2019/04/01 全球购物
办公室文秘自我评价
2013/09/21 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
标准版离职证明书
2014/09/12 职场文书
2014年平安创建工作总结
2014/11/24 职场文书
商标侵权律师函
2015/05/27 职场文书
情人节单身感言
2015/08/03 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
Python语言内置数据类型
2022/02/24 Python