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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
python网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 Python
python中xrange用法分析
Apr 15 Python
Python下载懒人图库JavaScript特效
May 28 Python
详解Python中的Cookie模块使用
Jul 06 Python
python遍历目录的方法小结
Apr 28 Python
便捷提取python导入包的属性方法
Oct 15 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
python 双循环遍历list 变量判断代码
May 04 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
python openssl模块安装及用法
Dec 06 Python
pytorch 一行代码查看网络参数总量的实现
May 12 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+XML 制作简单的留言本 图文教程
2009/11/02 PHP
php+highchats生成动态统计图
2014/05/21 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
2014/08/18 Javascript
jQuery+CSS3实现树叶飘落特效
2015/02/01 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
javascript DIV实现跟随鼠标移动
2020/03/19 Javascript
用js动态添加html元素,以及属性的简单实例
2016/07/19 Javascript
基于JS如何实现给字符加千分符(65,541,694,158)
2016/08/03 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
[05:56]第十六期——新进3大C之小兔基
2014/06/24 DOTA
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
Python字符串处理之count()方法的使用
2015/05/18 Python
Python中index()和seek()的用法(详解)
2017/04/27 Python
python的concat等多种用法详解
2018/11/28 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
LEGO玩具英国官方商店:LEGO Shop GB
2018/03/27 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
迎新晚会主持词
2014/03/24 职场文书
计划生育宣传标语
2014/06/21 职场文书
中秋节活动总结
2014/08/29 职场文书
2014年度思想工作总结
2014/11/27 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python