軟體構造Lab4 日誌功能

2021-09-24 01:14:59 字數 1534 閱讀 7786

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 在開發過程中,已經有現成的日誌元件了,可以直接使用,但在平時自己開發的一些工具時,並不能直接使用公司現有的日誌庫。所以就開始自己造輪子,並整合到自己的 庫中去,方便以後復用,提高開發效率。在開發過程中,復用了很多以前的 如模板佇列等,所以有自己的 庫是很重要的一件事,可以極大的提...