`
dyllove98
  • 浏览: 1381977 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:38322
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:78625
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:131758
社区版块
存档分类
最新评论

重定向输出流实现程序日志

 
阅读更多

实例说明

    System类中的out成员变量是java的标准输出流,程序通常用它来输出调试信息,out成员变量被定义为final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。本例通过该方法实现了输出流的重定向,把它指向一个文件输出流,从而实现了日志功能。程序运行后绘制控制台提示运行结束信息;但是在运行过程中的步骤保存到了日志文件中。

关键技术

    调用System类的setOut()方法改变了输出流,System类的outerrin成员变量是final类型的,不能直接赋值,要通过相应的方法来改变流。

setOut()方法:重新分配System类的标准输出流,方法声明

Public static void setOutPrintStream out); out:新的PrintStream输出流对象。

setErr()方法:重新分配System类的标准错误输出流,方法声明

Public static void setErrPrintStream err); err:新的PrintStream输出流对象。

setIn()方法:重新设置System类的in成员变量,即标准输入流。

设计过程

    创建RedirectOutputStream类,编写给类的main()主方法,在该方法中保存System类的out成员变量为临时变量,然后创建一个新的文件输出流,并把这个文件输出流设置为System类新的输出流。在程序关键位置输出调试信息,这些调试信息将通过新的输出流保存到日志文件中。最后恢复原有输出流并输出程序运行结束信息,关键代码:

Import  java.io.FileNotFoundException;

Import java.io.PrintStream;

public class RedirectOutputStream(){

Public static void main(String[] args){

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();

}

}

}

 

 

 

 

分享到:
评论

相关推荐

    Java开发自学100天,Java开发必背代码 重定向输出流实现程序日志

    Java开发自学100天,Java开发必背代码 重定向输出流实现程序日志

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

    主要介绍了Java中重定向输出流实现用文件记录程序日志,本文直接给出代码实例,并对代码做了详细注解,需要的朋友可以参考下

    Unity重定向日志输出到屏幕

    非常的不方便,所以做了个日志输出的重定向到屏幕上 为了图方便,用了UGUI做输出显示 支持做了简单的颜色区分和时间显示,并且会自动拦截全局的未catch的exception信息 提供了显示隐藏和屏蔽滑动的功能(用于...

    Java经典编程300例(完整版+源码

    实例013 重定向输出流实现程序日志 实例014 自动类型转换与强制类型转换 实例015 加密可以这样简单(位运算) 实例016 用三元运算符判断奇数和偶数 .  实例017 不用乘法运算符实现2×16 实例018 实现两个变量的...

    Java经典编程源码基础例程300.zip

    实例013 重定向输出流实现程序日志 17 实例014 自动类型转换与强制类型转换 19 实例015 加密可以这样简单(位运算) 20 实例016 用三元运算符判断奇数和偶数 21 实例017 不用乘法运算符实现2×16 22 实例018 实现两...

    python 打印信息重定向 GUI界面 ,PyQt5实时显示调用外部程序的实时输出显示,subprocess.Popen stdout输出重定向,备注详细!

    python 打印信息重定向 GUI界面 ,PyQt5实时显示调用外部程序的实时输出显示,subprocess.Popen stdout输出重定向,备注详细!

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例021 重定向输出流实现程序日志 31 实例022 自动类型转换与强制类型转换 33 2.2 运算符 34 实例023 加密可以这样简单(位运算) 34 实例024 用三元运算符判断奇数和偶数 35 实例025 更精确地使用浮点数 35 实例...

    ios-DebugWindow一个在真机上测试时方便查看输出日志的小工具。.zip

    - 重定向NSLog输出日志到文件中,这样你就不用替换到你项目中已有的NSLog()代码啦。 - 重定向程序奔溃日志到文件中。 - 自动根据当前设备信息选择要不要记录日志的同时把日志打印到控制台。 - 方便增删改查当前...

    shell脚本按当前日期输出日志的实现

    输出到控制台,并且写入日志文件: 执行脚本,会在当前目录下生成 log20190826.log文件,打开它发现成功写入日志信息: 脚本代码: #!/bin/bash #文件名:test.sh name=xiongzaiqiren echo $name echo BACKUP ...

    Qt编写调试日志输出工具带网络转发(开源)

    在Qt4是qInstallMsgHandler,Qt5里边是qInstallMessageHandler,有了这个神器,只要在你的项目中所有qdebug qinfo等输出的日志信息,都会重定向接收到,网上大部分人写的demo都是接收到输出打印日志存储到文本文件,...

    嵌入式串口打印信息重定向到当前终端界面

    下面是实现的代码,可以将输出到串口的日志信息,重定向到当前的telnet或者ssh界面上,是不是很神奇! 实现代码 #include #include #include #include #include #include int main(int argc, char *argv[]) { i

    nssm 安装包 使用命令

    可以重定向输出(并且支持Rotation) 可以自动守护封装了的服务,程序挂掉了后可以自动重启 可以自定义环境变量 这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。 开发的时候...

    NSSM 服务封装工具

    可以重定向输出(并且支持Rotation) 可以自动守护封装了的服务,程序挂掉了后可以自动重启 可以自定义环境变量 这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。 开发的时候是一个...

    python将控制台输出保存至文件的方法

    很多时候在Linux系统下运行python程序时,控制台会输出一些有用的信息。为了方便保存这些信息,有时需要对这些信息进行保存。这里介绍几种将控制台输出保存到文件中的方式: 1 重定向标准输出流 重定向标准输出流有...

    python程序输出无内容的解决方式

    某项目中使用python脚本方式将日志文件中的数据持续的转换格式输出到另一文件中以供其他日志分析应用使用。但是当后台运行采取重定向方式输出到某一文件时,发现并没有内容输出,命令如下: python xxx.py > xxx....

    iOS中日志同步获取NSLog重定向以及其他详解

    在Objective-c开发程序的时候,有专门的日志操作类NSLog,它将指定的输出,输出到(stderr),我们可以利用Xcode的日志输出窗口,下面这篇文章主要给大家介绍了关于iOS中日志同步获取NSLog重定向以及其他的相关资料,需要...

Global site tag (gtag.js) - Google Analytics