Java中重定向輸出流實現用文件記錄程序日志
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");//創(chuàng)建文件輸出流
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成員變量為臨時變量,然后創(chuàng)建新的文件輸出流,并把這個輸出流設置為System類的新是輸出流。并將持續(xù)的調試信息輸出到日志中去。主要方法:
1. setOut()方法: 重新分配System類的標準輸出流。
2. setErr()方法: 重新分配System類的標準錯誤輸出流。
3. setIn()方法: 重新分配System類的標準輸入流。
相關文章
解決Python plt.savefig 保存圖片時一片空白的問題
今天小編就為大家分享一篇解決Python plt.savefig 保存圖片時一片空白的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
利用Python批量壓縮png方法實例(支持過濾個別文件與文件夾)
這篇文章主要給大家介紹了關于利用Python批量壓縮png的相關資料,文中介紹的方法支持過濾個別文件與文件夾,文中通過示例代碼介紹的非常詳細,需要的朋友們下面跟著小編來一起看看吧。2017-07-07
使用Python將數組的元素導出到變量中(unpacking)
最近工作中遇到一個問題,需要利用Python將數組(list)或元組(tuple)中的元素導出到N個變量中,現在將我實現的方法分享給大家,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-10-10

