log4j是apache的乙個開源專案,通過使用log4j,我們可以控制日誌資訊輸送的目的地是控制台、檔案、gui元件,甚至是套介面伺服器、nt的事件記錄器、unix syslog守護程序等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌資訊的級別,我們能夠更加細緻地控制日誌的生成過程。最令人感興趣的就是,這些可以通過乙個配置檔案來靈活地進行配置,而不需要修改應用的**。
根據log4j的配置規則進行配置,我的配置檔案書寫如下:
編寫了乙個mylog類,用於在程式的任意位置進行日誌的書寫
package log;
import org.apache.logging.log4j.logmanager;
import org.apache.logging.log4j.logger;
public
class
mylog
然後在其他類的每個操作和異常處向日誌加入異常和操作的記錄,將日誌資訊寫入graph.log中去。
具體使用位置舉例
info:
log.mylog.logger.
info
("加入物體"
+ object.
getname()
+"-軌道"
+ t.
getradius()
);
error:
log.mylog.logger.
error
("想移除的軌道"
+ t.
getradius()
+"不存在"
);
效果如下:
編寫乙個logget類用於篩選日誌,並利用正則匹配來識別篩選的命令
例如:
pattern r12 = pattern.
compile
("log\\s+between\\s+(.+)\\s+and\\s+(.+)");
matcher m12 = r12.
matcher
(command)
;
然後根據匹配到的命令的具體內容,進行相應的具體操作
例如按類查詢:
else
if(m13.
find()
)}bfreader.
close()
;
執行效果如圖:
按類查詢:
軟體構造Lab4實驗總結
本實驗的主要工作是找到程式容易出錯的地方,並且盡力避免程式的崩潰。主要找到了以下幾種容易出錯的場合 1.trackgame的錯誤處理 1 如果game標籤沒有找到或者不合法,則丟擲異常game type error.2 如果num of track標籤沒有找到或者不合法,則丟擲異常num of tr...
哈工大軟體構造Lab4實驗心得
這次實驗基於lab3對 進行修改,處理各種異常,保證健壯性和正確性。之前在lab3中已經很注意防禦性程式設計了,但是這次改動還是特別大。太難了。健壯性更多的是對使用者友好,而正確性是對程式設計師友好,健壯性考慮的是輸入有問題的時候,程式能優雅的繼續進行,或者提示錯誤,正確性是保證程式正確輸入的時候能...
4 日誌元件
託管在github 在開發過程中,已經有現成的日誌元件了,可以直接使用,但在平時自己開發的一些工具時,並不能直接使用公司現有的日誌庫。所以就開始自己造輪子,並整合到自己的 庫中去,方便以後復用,提高開發效率。在開發過程中,復用了很多以前的 如模板佇列等,所以有自己的 庫是很重要的一件事,可以極大的提...