軟體構造課程心得(8)

2021-10-07 07:45:51 字數 955 閱讀 6754

在完成lab4之後,我對日誌有了很多自己的理解,這裡與大家分享一下。

日誌的建立其實很簡單

首先定義乙個日誌類

然後輸出任意的字串,只需要這兩步操作我們就生成了日誌

但是,我們的日誌不能僅僅輸出,我們也要用txt檔案將每個日誌的詳細資訊記錄下來,所以我們就要進行下面的操作

首先建立filehandler類,這個類就是用來將所有日誌記錄到txt檔案中的。

然後用儲存日誌的檔案的位置來建立filehandler類

最後再設定fh所記錄日誌的規格(這個接下來會詳細講),然後再將fh加入到log中就完成。

接下來我將介紹一下myformatter類,這個類是我們自己寫的,用來規定我們日誌的規格。

可以看到我們的myformatter類繼承了formatter

我們重寫了format方法,因為我們需要記錄每個日誌的時間,所以我們需要設定timezone,並且獲取sdata作為日誌發生時的時間。然後就是最後的return,這裡我們return的就是我們記錄的日誌,有時間,日誌等級,日誌的名字,日誌的資訊,等等。這樣做可以讓我們記錄的日誌更加的規範。

在做好上面的步驟之後,我發現我的日誌時好時壞,有的時候會出現無法記錄的情況。同時會出現lck這種鎖檔案。每當我的檔案裡出現了這樣的lck檔案,我就發現我原本的檔案是無法寫入的。

為了找到這種致命的問題,我反覆進行實驗,然後我發現實際上每次我執行程式的時候都會出現lck,然後當正常結束檔案的時候lck檔案會自動消失,而當lck檔案沒有自動消失的時候,我再次執行檔案就無法對檔案寫入了。

而這種問題的出現是因為這個函式,

如果有任何一次迴圈中我建立了fh,但最後卻沒有將這個fh給close,那我的檔案就會出現lck不消失的情況,之後就再也無法寫入,所以每次建立完fh,我們都要記得將fh給close了。

軟體構造課程心得(5)

最近做了lab3,對介面和繼承又有了種種新的認知,在這裡想和大家分享。首先是介面可以接收該介面的各種子類,由此來完成多個不同類的統一接收,如圖 這是乙個state介面 而下圖 以createdstate為例 是這個state介面的各種子類,createdstate,givedstate,blocke...

軟體構造課程

課程目標 在高階語言程式設計的基礎上,認識軟體構造的質量標準與目標,學習軟體 構造的基本過程,從而具備面向質量目標的複雜軟體構造方法與能力 深入學習抽象資料型別 adt 與物件導向程式設計 oop 初步掌握面向關鍵質量目標 可理解性 可維護性 可復用性 健壯性 時 空效能 的軟體構造基本技術 了解軟...

軟體構造8 習題課2心得

某公司擬設計和開發乙個停車場管理系統,其基本需求陳述如下 1 乙個停車場有n個車位 n 5 不同停車場包含的車位數目不同。2 一輛車進入停車場,如果該停車場有空車位且其寬度足以容納車的寬度,則可以在此停車。支援自動分配車位和指定停車位兩種分配方式。3 停在停車場裡的車,隨時可以駛離停車場。4 停車場...