開發程序經常要從控制檯當中獲取程序運行的情況,最近在開發在服務器端,導師要求要記錄好運行信息,包括異常信息,客戶連接情況等信息,但控制檯觀看有種種限制,如窗口過小閱讀不方便,或者在服務器上通過命令行運行jar包時的行數限制等等。於是就想到將運行信息打印日誌到文件中。接下來就分享一下這幾天研究出來的幾種打印日誌到文件中的方法。
一:通過開發工具Eclipse設置來直接打印輸出到本地文件中。
在上方的工具欄打開Run -> Run Configuration 或者 Debug Configurations菜單。 然後點擊工具欄的Common,勾選 “Output File:”, 填寫輸出文件路徑及文件名。如果你勾選了“Append”,輸出的日誌將會被追加寫入到文件最後,否則將會覆蓋重寫文件。
二:通過log4j把異常信息打印到日誌。
首先是要先把log4j的jar包導入到工程中(jar到可以在網上下載)。然後在log4j.properties配置文件中配置如下信息:
# 定義 DEBUG 優先級, R 爲日誌輸出目的的
log4j.rootLogger= DEBUG, R
# 設置日誌輸出類型 , 爲文件類型
log4j.appender.R= org.apache.log4j.FileAppender
# 設置日誌文件的位置
log4j.appender.R.file=D\:/Java/logs/logRecord.log
# 每次在文件尾寫入新的日誌信息
log4j.appender.R.Append= true
# 日誌輸出信息格式類型
log4j.appender.R.layout= org.apache.log4j.PatternLayout
# 日誌輸出信息格式爲 換行、日期、優先級、 [ 全類名 ] 、日誌信息、換行
log4j.appender.R.layout.ConversionPattern= %n%d%p [%l] %m%n
示例代碼如下:
import org.apache.log4j.Logger;
public class Test {
public static void main(String[] args) {
Logger logger = Logger.getLogger(Test.class.getName());//獲取日誌記錄器,這個記錄器將負責控制日誌信息
try {
//some code;
} catch (Exception e) {
logger.info(e.getMessage());//使用Logger對象的debug、info方法輸出日誌信息
}
}
}
三:把cmd命令提示符的信息打印到文本文件(如:在服務器上用命令提示符運行jar包的時候可用)
在輸入命令後再加上“>”和你想保存的文件地址和名字就行了。
例如:將Ping命令的加長包輸出到D盤的ping.txt文本文件。
1、在D:目錄下創建文本文件ping.txt(這步可以省略,偶爾提示無法創建文件時需要)
2、在提示符下輸入ping www.idoo.org.ru -t > D:ping.txt
3、這時候發現D盤下面的ping.txt裏面已經記錄了所有的信息
備註:
只用“>”是覆蓋現有的結果,每一個命令結果會覆蓋現有的txt文件,如果要保存很多命令結果的話,就需要建立不同文件名的txt文件。
那麼有沒有在一個更好的辦法只用一個txt文件呢?答案是肯定的,要在同一個txt文件裏面追加cmd命令結果,就要用“>>”替換“>” 就可以了.