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使用win32com在百度空间插入html元素示例
Feb 20 Python
python条件变量之生产者与消费者操作实例分析
Mar 22 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
Apr 11 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
Sep 28 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
python监控进程脚本
Apr 12 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
Python数学形态学实例分析
Sep 06 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
Python cookie的保存与读取、SSL讲解
Feb 17 Python
使用PyCharm安装pytest及requests的问题
Jul 31 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
php中取得文件的后缀名?
2012/02/20 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
Javascript new关键字的玄机 以及其它
2010/08/25 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
Bootstrap table使用方法记录
2017/08/23 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
详解Python中dict与set的使用
2015/08/10 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
python实现周期方波信号频谱图
2018/07/21 Python
python字典改变value值方法总结
2019/06/21 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
tensorflow:指定gpu 限制使用量百分比,设置最小使用量的实现
2020/02/06 Python
python datetime处理时间小结
2020/04/16 Python
Tensorflow中的降维函数tf.reduce_*使用总结
2020/04/20 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
python switch 实现多分支选择功能
2020/12/21 Python
详解pandas映射与数据转换
2021/01/22 Python
会计学习心得体会
2014/09/09 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
详解Python中的for循环
2022/04/30 Python