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实现实时监控文件的方法
Aug 26 Python
Django实现快速分页的方法实例
Oct 22 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
Python退火算法在高次方程的应用
Jul 26 Python
使用Python实现跳帧截取视频帧
May 31 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
python实现在线翻译功能
Mar 03 Python
python剪切视频与合并视频的实现
Mar 03 Python
python argparse传入布尔参数false不生效的解决
Apr 20 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
如何把python项目部署到linux服务器
Aug 26 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
PHP IF ELSE简化/三元一次式的使用
2011/08/22 PHP
CI框架给视图添加动态数据
2014/12/01 PHP
php查询mysql数据库并将结果保存到数组的方法
2015/03/18 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
用jquery实现学校的校历(asp.net+jquery ui 1.72)
2010/01/01 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
2012/09/19 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
jQuery中:text选择器用法实例
2015/01/03 Javascript
理解js回收机制通俗易懂版
2016/02/29 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
jQuery简单获取DIV和A标签元素位置的方法
2017/02/07 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
vue、react等单页面项目应该这样子部署到服务器
2018/01/03 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
python 解决函数返回return的问题
2020/12/05 Python
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
俄罗斯汽车零件和配件在线商店:CarvilleShop
2019/11/29 全球购物
Java基础知识面试要点
2016/07/29 面试题
介绍一下linux文件系统分配策略
2013/02/25 面试题
关于环保的建议书
2014/05/12 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
辩护词范文大全
2015/05/21 职场文书
建国大业观后感
2015/06/01 职场文书
退休教师追悼词
2015/06/23 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python