亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種日志信息的自動循環(huán)存儲方法和系統(tǒng)的制作方法

文檔序號:6364652閱讀:437來源:國知局
專利名稱:一種日志信息的自動循環(huán)存儲方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機系統(tǒng)中的日志信息的自動循環(huán)存儲,尤其是在通信系統(tǒng)設(shè)備中對系統(tǒng)的各類日志信息的實時、自動循環(huán)、按重要性級別存儲方法與系統(tǒng)。幾乎所有的計算機系統(tǒng)都需要定期或?qū)崟r保存日志信息,這是系統(tǒng)進(jìn)行診斷的重要手段。目前的儲存日志信息的方法非常多,一般可以分為兩類第一類系統(tǒng)是采用簡單文件存儲;第二類系統(tǒng)是數(shù)據(jù)庫存儲。
第一類系統(tǒng)的主要實現(xiàn)方法有1)單個文件存儲所有的信息;2)按日期存儲在多個文件中,可以按天存儲還可以按星期存儲在不同的文件中;3)按不同的應(yīng)用目的把信息存儲在多個文件中;4)按固定大小存儲在多個文件中。
上述幾種方法雖然實現(xiàn)起來非常簡單,但其有以下的缺點存在超越磁盤存儲空間的可能性,容易導(dǎo)致系統(tǒng)的崩潰;以上4種實現(xiàn)方法都不能自動維護(hù),需要人工定期更新與維護(hù);而第一、第二種和第三種方法還可能會使得文件太大,導(dǎo)致用戶無法正常讀取。
第二類系統(tǒng)的主要實現(xiàn)方法是在數(shù)據(jù)庫中按系統(tǒng)設(shè)定的方式把日志信息存儲的一張表中。
這種方法的優(yōu)點是可以方便地查詢?nèi)罩拘畔ⅰ?br> 其缺點是1)也有超越磁盤存儲空間的可能性,還需要人工更新與維護(hù);2)需要安裝數(shù)據(jù)庫軟件,增加了系統(tǒng)的價格,降低了系統(tǒng)的性能,在使用上有一定的局限性。
在通信系統(tǒng)中各種調(diào)試和運行都需要保存一些重要的日志信息,而且希望盡可能減少人工參與維護(hù)。使用專門的數(shù)據(jù)庫軟件增加了成本,系統(tǒng)也顯得臃腫。這就提出了一個問題是否能有一種相對獨立簡單的并能在較寬的使用范圍里實現(xiàn)日志消息的自動、循環(huán)存儲方法與系統(tǒng)?本發(fā)明的目的之一在于提供一種日志信息的自動循環(huán)存儲方法,能自動覆蓋最早的日志文件,有效控制磁盤存儲空間,避免前述各類方法的缺陷,且不增加系統(tǒng)的運算量,不需人工維護(hù);本發(fā)明的目的之二在于提供一種日志信息的自動存儲系統(tǒng),實現(xiàn)把按用戶需求的各類系統(tǒng)的日志信息進(jìn)行自動、循環(huán)、實時存儲,而且保證了線程的安全,可以廣泛運用在各類計算機系統(tǒng)中。
本發(fā)明的日志信息自動循環(huán)存儲的方法,實現(xiàn)步驟如下一、系統(tǒng)初始化1)設(shè)置系統(tǒng)所需的各項參數(shù),包括每個日志文件的最大值、日志文件總的最大值、打印的信息的內(nèi)容以及需保存日志信息的級別;設(shè)置打印的信息的內(nèi)容,包括是否打印源文件名、是否打印源文件的行號以及是否打印當(dāng)前線程編號。
保存日志信息的級別表示保存級別小于等于設(shè)定值的系統(tǒng)信息,每條系統(tǒng)信息都有一個級別定義,級別越小的重要性越高。
2)根據(jù)指針文件得到上次系統(tǒng)退出時的文件編號,并打開一個日志文件;系統(tǒng)的指針文件,當(dāng)退出系統(tǒng)時指針文件中保存退出時的日志文件編號;當(dāng)系統(tǒng)運行時,將當(dāng)前的日志文件編號保存在指針文件中。
3)檢查打開的日志文件的大小是否超出設(shè)定的日志文件最大值;4)若超出,則關(guān)閉當(dāng)前日志文件,并利用循環(huán)文件名生成算法找到下一個日志文件名,以清空的方式打開下一個文件;5)保存當(dāng)前日志文件編號到指針文件中;6)啟動定時器,并開始保存日志信息;二、定時循環(huán)監(jiān)控日志文件的大??;1)檢查當(dāng)前文件的大小,判斷是否小于初始化時設(shè)定的單日志文件的最大設(shè)定值,如果大于等于最大設(shè)定值,則跳轉(zhuǎn)步驟6)動作;
2)如果小于最大設(shè)定值,則關(guān)閉當(dāng)前日志文件;3)利用循環(huán)文件名生成算法產(chǎn)生1個新的文件名;4)打開步驟3)中的新文件,并清空原有內(nèi)容;5)在指針文件中保存新的文件指針;6)等待一個設(shè)定的間隔時間結(jié)束,循環(huán)進(jìn)入定時監(jiān)控流程;三、在進(jìn)入定時循環(huán)監(jiān)控的同時實時記錄保存日志信息;1)判斷當(dāng)前系統(tǒng)日志信息的級別是否小于等于初始化時設(shè)定的保存級別,如果信息的保存級別大于設(shè)定的系統(tǒng)保存級別,跳轉(zhuǎn)步驟6)動作;2)為了保證線程安全,首先利用互斥技術(shù)加鎖;3)然后取時間、線程號,根據(jù)當(dāng)前的配置要求,保存日期、線程號、源程序的文件名、行號、日志內(nèi)容等信息到當(dāng)前日志文件中;4)換行,并刷新文件;5)釋放步驟2)中所加的鎖;6)等待接收系統(tǒng)下一條日志信息,繼續(xù)實時判斷保存日志信息。
本發(fā)明的日志信息自動循環(huán)存儲系統(tǒng)包括初始化模塊、定時器模塊、寫日志模塊;初始化模塊包括對需要保存的日志信息分級別、設(shè)置日志文件的相關(guān)參數(shù)、指針文件的指針值,系統(tǒng)啟動的時候先進(jìn)入初始化模塊;當(dāng)完成初始化所需的設(shè)置后同時開始進(jìn)入寫日志模塊和定時器模塊的動作;寫日志模塊中為保證線程的安全在寫日志時設(shè)置加解鎖,在寫日志時實時取系統(tǒng)信息按初始化模塊中設(shè)置的級別保存日志信息;定時器模塊定時檢查維護(hù)寫入的日志文件,當(dāng)寫入的日志文件超過設(shè)定的大小時,循環(huán)清空、打開下一個日志文件。


圖1是本發(fā)明的日志信息自動循環(huán)存儲方法中初始化流程圖;圖2是本發(fā)明的日志信息自動循環(huán)存儲方法中定時循環(huán)監(jiān)控程圖;圖3為本發(fā)明的日志信息自動循環(huán)存儲方法中寫日志信息處理流程圖;圖4為本發(fā)明的日志信息自動循環(huán)存儲系統(tǒng)的模塊組成示意以下參考圖1、圖2、圖3的流程,并結(jié)合實例說明本發(fā)明方法的處理過程,先說明在初始化和定時循環(huán)監(jiān)控中有關(guān)循環(huán)文件名生成的方法(1)用戶需要給定一個文件名,有兩部分組成,如“ABCD.EFG”,其中的“ABCD”為基本文件名,“EFG”為擴展文件名,那么生成的新文件名為基本文件名+文件編號+“.”+擴展文件名;(2)文件編號是從1到編號最大值,編號最大值應(yīng)當(dāng)是“日志文件總的最大值”除以“單個日志文件的最大值”的結(jié)果的整數(shù)部分,編號的最大值必須大于等于2。
(3)當(dāng)文件編號大于編號最大值時,文件編號重新回到1。
以下僅以本發(fā)明的方法和系統(tǒng)在認(rèn)證計費服務(wù)器中的具體應(yīng)用進(jìn)行說明如下(1)初始化,調(diào)用本系統(tǒng)的初始化模塊,主要參數(shù)是日志的級別、日志文件的基本名、指針文件的名稱、單個文件的最大值、日志信息的總的存儲空間。隨后,系統(tǒng)自動啟動定時器,不需要用戶來執(zhí)行這一步。
若單個文件的最大值為5M、日志信息的總的存儲空間為403M,則文件編號最大值為80;(2)程序運行時系統(tǒng)將定時檢查當(dāng)前日志文件的大小,并判斷是否需要轉(zhuǎn)而寫下一個文件。例如若當(dāng)前文件指針為“3”,文件的基本名為“Radius.log”,則當(dāng)前的日志文件名為“Radius3.log”,如果定時器檢查到文件“Radius3.log”的大小超過單個文件的最大值,則使得文件指針為“4”,用清空方式打開文件“Radius4.log”,且在指針文件中記錄“4”這個值;(3)程序運行時可以隨時保存信息,只需要使用兩個參數(shù),例如PTRACE(3,″Message no″<<no);其中的第一個參數(shù)“3”表示這條信息的級別為3,若用戶在初始化時設(shè)置的級別小于3,則不打印這條信息,否則打印這條信息。第二個參數(shù)中的″Message no″是一個字符串,而“no”是一個整數(shù)變量。若no的值為3,則結(jié)果為2000/11/12 102051 243 host.cpp(478) Message no3其中的“243”表示線程號為243的線程執(zhí)行了這一行代碼,“host.cpp(478)”表示打印這條信息的代碼在host.cpp文件的第478行。
圖4所示的本發(fā)明系統(tǒng)的模塊組成示意圖在上面已經(jīng)作了詳細(xì)的說明在此處就不再贅述;本發(fā)明的方法與系統(tǒng)采用了文件存儲方式,利用循環(huán)的辦法實現(xiàn)了日志信息的自動更新與維護(hù)。由于文件編號被保存在文件中,使得系統(tǒng)重新啟動后還能記錄當(dāng)前文件的編號,而文件的編號是循環(huán)的,所以保證了系統(tǒng)覆蓋的是最舊的文件。
利用本系統(tǒng)實現(xiàn)的日志系統(tǒng)還具有下列優(yōu)點(1)循環(huán)使用存儲空間,不需要人工干預(yù),提高了系統(tǒng)的可靠性;(2)設(shè)置不同的日志級別,可以在調(diào)試時保存很多的跟蹤信息,在運行時保存較少的跟蹤信息,可自動保存源程序的文件名、行號等信息,增加了系統(tǒng)使用的方便性;(3)操作系統(tǒng)平臺無關(guān),支持多線程,使本發(fā)明的系統(tǒng)相對獨立,便于管理;(4)調(diào)用接口十分簡單、靈活。
權(quán)利要求
1.一種日志信息的自動循環(huán)存儲方法,其特征在于,實現(xiàn)的具體步驟如下一、系統(tǒng)初始化1)設(shè)置系統(tǒng)所需的各項參數(shù),包括每個日志文件的最大值、日志文件總的最大值、打印的信息的內(nèi)容以及需保存日志信息的級別(11);2)根據(jù)指針文件得到上次系統(tǒng)退出時的文件編號,打開一個日志文件(12);3)檢查打開的日志文件的大小是否超出設(shè)定的日志文件最大值(13);4)若超出,則關(guān)閉當(dāng)前日志文件,并利用循環(huán)文件名生成算法找到下一個日志文件名,以清空的方式打開下一個文件(14);5)保存當(dāng)前日志文件編號到指針文件中(15);6)啟動定時器,并開始保存日志信息(16);二、定時循環(huán)監(jiān)控日志文件的大??;1)檢查當(dāng)前文件的大小,判斷是否小于初始化時設(shè)定的單日志文件的最大設(shè)定值(21),如果大于等于最大設(shè)定值,則跳轉(zhuǎn)步驟6)動作(26);2)如果小于最大設(shè)定值,則關(guān)閉當(dāng)前日志文件(22);3)利用循環(huán)文件名生成算法產(chǎn)生1個新的文件名(23);4)打開步驟3)中的新文件,并清空原有內(nèi)容(24);5)在指針文件中保存新的文件指針(25);6)等待一個設(shè)定的間隔時間結(jié)束(26),循環(huán)進(jìn)入定時監(jiān)控流程(21);三、在進(jìn)入定時循環(huán)監(jiān)控的同時實時記錄保存日志信息;1)判斷當(dāng)前系統(tǒng)日志信息的級別是否小于等于初始化時設(shè)定的保存級別(31),如果信息的保存級別大于設(shè)定的系統(tǒng)保存級別,跳轉(zhuǎn)步驟6)動作(36);2)為了保證線程安全,首先利用互斥技術(shù)加鎖(32);3)然后取時間、線程號,根據(jù)當(dāng)前的配置要求,保存日期、線程號、源程序的文件名、行號、日志內(nèi)容等信息到當(dāng)前日志文件中(33);4)換行,并刷新文件(34);5)釋放步驟2)中所加的鎖(35);6)等待接收系統(tǒng)下一條日志信息(36),繼續(xù)實時判斷保存日志信息(31)。
2.根據(jù)權(quán)利要求1所述的一種日志信息的自動循環(huán)存儲方法,其特征在于,在所述的初始化中設(shè)置打印的信息的內(nèi)容,包括是否打印源文件名、是否打印源文件的行號以及是否打印當(dāng)前線程編號。
3.根據(jù)權(quán)利要求1所述的一種日志信息的自動循環(huán)存儲方法,其特征在于,在所述的初始化中保存日志信息的級別表示保存級別小于等于設(shè)定值的系統(tǒng)信息,每條系統(tǒng)信息都有一個級別定義,級別越小的重要性越高。
4.根據(jù)權(quán)利要求1所述的一種日志信息的自動循環(huán)存儲方法,其特征在于,在所述的初始化中系統(tǒng)的指針文件,當(dāng)退出系統(tǒng)時指針文件中保存退出時的日志文件編號;當(dāng)系統(tǒng)運行時,將當(dāng)前的日志文件編號保存在指針文件中。
5.一種日志信息的自動循環(huán)存儲系統(tǒng),包括本發(fā)明的日志信息自動循環(huán)存儲系統(tǒng)包括初始化模塊、定時器模塊、寫日志模塊;初始化模塊包括對需要保存的日志信息分級別、設(shè)置日志文件的相關(guān)參數(shù)、指針文件的指針值,系統(tǒng)啟動的時候先進(jìn)入初始化模塊;當(dāng)完成初始化所需的設(shè)置后同時開始進(jìn)入寫日志模塊和定時器模塊的動作;寫日志模塊中為保證線程的安全在寫日志時設(shè)置加解鎖,在寫日志時實時取系統(tǒng)信息按初始化模塊中設(shè)置的級別保存日志信息;定時器模塊定時檢查維護(hù)寫入的日志文件,當(dāng)寫入的日志文件超過設(shè)定的大小時,循環(huán)清空、打開下一個日志文件。
全文摘要
本發(fā)明公開了一種以日志文件方式構(gòu)成的日志信息自動循環(huán)存儲方法與系統(tǒng)。通過在初始化模塊中設(shè)置指針文件和日志文件的各類參數(shù),由定時器模塊定時對正在操作的日志文件進(jìn)行掃描,并按順序循環(huán)打開其它日志文件進(jìn)行操作,而寫日志信息時可按設(shè)定的級別和內(nèi)容要求保存信息。本發(fā)明的方法系統(tǒng)在應(yīng)用中相對獨立,能夠靈活地被調(diào)用。在各類計算機應(yīng)用系統(tǒng)尤其是通信系統(tǒng)中的調(diào)試和運行都能達(dá)到良好的效果。
文檔編號G06F11/30GK1361489SQ00137218
公開日2002年7月31日 申請日期2000年12月28日 優(yōu)先權(quán)日2000年12月28日
發(fā)明者沈燦 申請人:深圳市中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1