專利名稱:一種日志信息的動態(tài)存儲系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件存儲技術(shù),尤其涉及一種日志信息的動態(tài)存儲系統(tǒng)及方法。
背景技術(shù):
系統(tǒng)日志信息是一種突發(fā)性的信息,可以反映和記錄系統(tǒng)的工作狀態(tài)。常見的日
志信息保存方式之一是將日志信息保存到非易失性存儲器的系統(tǒng)日志文件中。當(dāng)系統(tǒng)出現(xiàn)
了異常甚至故障而需要系統(tǒng)復(fù)位時,通過閱讀非易失性存儲器中保存的系統(tǒng)日志文件,可
以了解系統(tǒng)復(fù)位前的工作狀態(tài),為排查系統(tǒng)故障或者異常出現(xiàn)的原因提供參考。 閃速(FLASH)存儲器是通訊系統(tǒng)中常用的非易失性存儲器,F(xiàn)LASH存儲器的壽命
通常用可擦寫次數(shù)來衡量,向FLASH存儲器中寫日志文件的過程就是一次擦寫的過程,因
此頻繁地擦寫日志文件,必然會帶來FLASH存儲器容易損壞,縮短存儲器甚至系統(tǒng)使用壽
命等問題,加大了系統(tǒng)的故障率。 靜態(tài)日志文件存儲方法是指在需要保存日志信息時,通過管理員手動執(zhí)行命令將 日志信息寫入FLASH存儲器等非易失性存儲器的方式。靜態(tài)日志文件存儲方法雖然可以減 少FLASH存儲器等的擦寫次數(shù),但是當(dāng)系統(tǒng)發(fā)生異常甚至故障需要系統(tǒng)復(fù)位時,存儲器中 保存的日志信息可能并不包括導(dǎo)致異常甚至故障的原因,實際上并不利于故障的排查和分 析。 與靜態(tài)日志文件不同的是,動態(tài)日志文件存儲方法是系統(tǒng)每產(chǎn)生一個日志信息, 就將新產(chǎn)生的日志信息寫入到FLASH存儲器等之中的日志文件。根據(jù)前面的介紹,寫日志 文件的過程就是擦寫存儲器的過程,因此對于日志信息產(chǎn)生的頻率較高的系統(tǒng),現(xiàn)有動態(tài) 日志文件存儲方法至少存在著需要頻繁擦寫存儲器這一缺陷。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題,在于需要提供一種日志信息的動態(tài)存儲系統(tǒng)及方 法,以降低存儲日志信息過程中擦寫存儲器的頻率。 為了解決上述技術(shù)問題,本發(fā)明首先提供了一種日志信息的動態(tài)存儲方法,包 括 預(yù)設(shè)一緩沖區(qū); 將系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到所述緩沖區(qū)中; 將所述緩沖區(qū)中的日志信息寫入非易失性存儲器的日志文件中。 優(yōu)選地,啟動所述動態(tài)存儲時,如果所述非易失性存儲器中含有歷史日志信息,則
將所述新產(chǎn)生的日志信息存儲到所述緩沖區(qū)之前,進一步提取所述歷史日志信息并存儲到
所述緩沖區(qū)中。 優(yōu)選地,提取所述歷史日志信息時,按照時間順序?qū)⑺鰵v史日志信息存儲到所 述緩沖區(qū)中,其中時間上最新的歷史日志信息存儲在所述緩沖區(qū)的頭部;每當(dāng)存儲所述新 產(chǎn)生的日志信息時,將所述緩沖區(qū)中的日志信息向所述緩沖區(qū)的尾部移動,在所述緩沖區(qū)的頭部留出所述新產(chǎn)生的日志信息大小的預(yù)留空間,并將所述新產(chǎn)生的日志信息存儲到所 述預(yù)留空間中。 優(yōu)選地,提取所述歷史日志信息時,按照時間順序?qū)⑺鰵v史日志信息存儲到所 述緩沖區(qū)中,其中時間上最老的歷史日志信息存儲在所述緩沖區(qū)的頭部;每當(dāng)存儲所述新 產(chǎn)生的日志信息時,在所述緩沖區(qū)中時間上最新的日志信息后連續(xù)存儲所述新的日志信 息。 優(yōu)選地,根據(jù)日志寫入規(guī)則,或者在所述系統(tǒng)的日志功能無效時,將所述緩沖區(qū)中 的日志信息寫入所述日志文件中。 為了解決上述技術(shù)問題,本發(fā)明還提供了一種日志信息的動態(tài)存儲系統(tǒng),包括
設(shè)置模塊,用于設(shè)置一緩沖區(qū); 存儲模塊,用于將系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到所述緩沖區(qū)中;
寫入模塊,用于將所述緩沖區(qū)中的日志信息寫入非易失性存儲器的日志文件中。
優(yōu)選地,該系統(tǒng)進一步包括 判斷模塊,用于在啟動所述動態(tài)存儲時判斷所述非易失性存儲器中是否含有歷史 日志信息; 提取模塊,用于所述判斷模塊在啟動所述動態(tài)存儲時判斷出所述非易失性存儲器 中含有歷史日志信息時,將所述新產(chǎn)生的日志信息存儲到所述緩沖區(qū)之前,提取所述歷史 日志信息; 其中,所述存儲模塊進一步用于將所述歷史日志信息存儲到所述緩沖區(qū)中。
優(yōu)選地,該系統(tǒng)進一步包括 移動模塊,用于將所述緩沖區(qū)中的日志信息向所述緩沖區(qū)的尾部移動,在所述緩 沖區(qū)的頭部留出所述新產(chǎn)生的日志信息大小的預(yù)留空間;
其中, 所述存儲模塊,用于按照時間順序?qū)⑺鰵v史日志信息存儲到所述緩沖區(qū)中,其 中時間上最新的日志信息存儲在所述緩沖區(qū)的頭部,并用于將所述新產(chǎn)生的日志信息存儲 到所述預(yù)留空間中。 優(yōu)選地,所述存儲模塊,用于按照時間順序?qū)⑺鰵v史日志信息存儲到所述緩沖 區(qū)中,其中時間上最老的日志信息存儲在所述緩沖區(qū)的頭部,并用于在所述緩沖區(qū)中時間 上最新的日志信息后連續(xù)存儲所述新產(chǎn)生的日志信息。 優(yōu)選地,所述寫入模塊用于根據(jù)日志寫入規(guī)則,或者在所述系統(tǒng)的日志功能無效 時,將所述緩沖區(qū)中的日志信息寫入所述日志文件中。 與現(xiàn)有技術(shù)相比,本發(fā)明提出的日志信息動態(tài)存儲技術(shù),其中至少一種實施方式 通過嚴格按照時間順序緩存日志信息,然后再一次性地寫入到存儲器中,解決了現(xiàn)有動態(tài) 日志信息存儲過程中存儲器的擦寫過于頻繁的問題,減少了存儲器出現(xiàn)故障的概率,較好 地延長了存儲器以及系統(tǒng)的使用壽命。 本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利 要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實
施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中 圖1為本發(fā)明方法第一實施例的流程示意圖; 圖2為本發(fā)明方法第二實施例的流程示意圖; 圖3為本發(fā)明日志信息的動態(tài)存儲系統(tǒng)實施例組成示意圖。
具體實施例方式
以下將結(jié)合附圖及實施例來詳細說明本發(fā)明的實施方式,借此對本發(fā)明如何應(yīng)用
技術(shù)手段來解決技術(shù)問題,并達成技術(shù)效果的實現(xiàn)過程能充分理解并據(jù)以實施。 需要說明的是,如果不沖突,本發(fā)明實施例以及實施例中的各個特征可以相互結(jié)
合,均在本發(fā)明的保護范圍之內(nèi)。另外,在附圖的流程圖示出的步驟可以在諸如一組計算機
可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況
下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。 本發(fā)明的核心思想是將系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到預(yù)設(shè)的一緩沖 區(qū)中,然后根據(jù)日志寫入規(guī)則(如寫入時機等),或者在系統(tǒng)的日志功能無效時,將緩沖區(qū) 中的日志信息寫入到存儲器的日志文件中。其中該日志寫入規(guī)則,比如為日志寫入周期, 每到一個日志寫入周期時,自動將緩沖區(qū)中的日志信息寫入到FLASH存儲器中的日志文件 中;該日志寫入周期的長短,可以根據(jù)實際應(yīng)用情況由FALSH存儲器的壽命和系統(tǒng)的設(shè)計 壽命等因素權(quán)衡考慮來設(shè)定,而且,該日志寫入周期可以是定長的,也可以是不定長的。
圖1為本發(fā)明方法第一實施例的流程示意圖。需要說明的是,在本實施例中,該非 易失性存儲器為FLASH存儲器。在其它實施例中,也可以是鐵電隨機存取存儲器(FeRAM) 或者電可擦寫可編程只讀存儲器(EEPR0M)等其它類型的非易失性存儲器。如圖l所示,該 第一實施例主要包括如下步驟 步驟S110,開啟系統(tǒng)日志動態(tài)存儲功能時,F(xiàn)LASH存儲器中存儲有日志文件的歷 史日志信息,則提取該FLASH存儲器中日志文件的歷史日志信息,按照歷史日志信息的時 間順序,將歷史日志信息存儲到預(yù)設(shè)的系統(tǒng)內(nèi)存中一確定大小的定長緩沖區(qū)中,其中時間 上最新的歷史日志信息存儲在該定長緩沖區(qū)的頭部,相應(yīng)地時間上最老的歷史日志信息存 儲在最遠離頭部的緩沖區(qū)的空間;當(dāng)然,時間上最老的歷史日志信息距離該定長緩沖區(qū)的 尾部最近; 該定長緩沖區(qū)的大小遠大于日志文件的大小的上限值,該大小是根據(jù)FALSH存儲 器空間大小和實際應(yīng)用相結(jié)合確定的; 步驟S120,系統(tǒng)日志動態(tài)存儲功能開啟情況下,每當(dāng)產(chǎn)生新的日志信息,將定長緩 沖區(qū)中所有的日志信息向定長緩沖區(qū)的尾部移出新產(chǎn)生的日志信息大小的空間,并將該新 產(chǎn)生的日志信息存儲到定長緩沖區(qū)移出的空間中;其中移出的空間位于該定長緩沖區(qū)的頭 部; 在本步驟中,如果存儲該新產(chǎn)生的日志信息之前,定長緩沖區(qū)中剩余空間不能完 整存儲該新產(chǎn)生的日志信息,則定長緩沖區(qū)的尾部位置的一個或者一個以上的日志信息會 被刪除;
本步驟的存儲方式,保證了每個新產(chǎn)生的日志信息,都存儲在該定長緩沖區(qū)的頭 部,保證了整個定長緩沖區(qū)中的日志信息是嚴格按照時間順序存儲的,避免了在存儲日志 信息時產(chǎn)生時間混亂的問題; 步驟S130,在每個日志寫入周期,檢查該定長緩沖區(qū)中是否存儲有新產(chǎn)生的日志 信息,是則轉(zhuǎn)步驟S140,否則轉(zhuǎn)步驟S150 ; 步驟S140,將定長緩沖區(qū)中的日志信息寫入到FALSH存儲器的日志文件中,然后 轉(zhuǎn)步驟S150 ; 步驟S150,在系統(tǒng)日志功能關(guān)閉、任何原因造成的系統(tǒng)復(fù)位或者系統(tǒng)掉電等系統(tǒng) 日志功能無效時(對于系統(tǒng)掉電,則為掉電保護電路失效前),檢查該定長緩沖區(qū)中是否存 儲有新產(chǎn)生的日志信息,是則轉(zhuǎn)步驟S160,否則結(jié)束; 步驟S160,將定長緩沖區(qū)中的日志信息寫入到FALSH存儲器的日志文件中,然后 結(jié)束。 上述步驟SllO中,如果FLASH存儲器中沒有歷史日志信息,則步驟S120中直接將 新產(chǎn)生的日志信息從該定長緩沖區(qū)的頭部開始,按照時間順序依次存儲。
在步驟S120及步驟S140中,在定長緩沖區(qū)中存入新產(chǎn)生的日志信息后,都設(shè)置一 個新日志信息標(biāo)志位,在本實施例中是通過該標(biāo)志位的值為TRUE來表示最近一個日志寫 入周期有新的日志信息產(chǎn)生,為FALSE來表示最近一個日志寫入周期沒有新的日志信息產(chǎn) 生。在步驟S130及步驟S150中,根據(jù)該新日志信息標(biāo)志位來檢查定長緩沖區(qū)中是否存儲 有新產(chǎn)生的日志信息。相應(yīng)地,在步驟S140及步驟S160中,在日志信息寫入到FALSH存儲 器中的日志文件中之后,將新日志信息標(biāo)志位的值置為FALSE。 圖2為本發(fā)明方法第二實施例的流程示意圖。圖2所示的實施例主要包括如下步 驟 步驟S210,開啟系統(tǒng)日志動態(tài)存儲功能時,F(xiàn)LASH存儲器中存儲有日志文件的歷 史日志信息,則提取FLASH存儲器中日志文件的歷史日志信息,按照歷史日志信息的時間 順序?qū)v史日志信息存儲到預(yù)設(shè)的系統(tǒng)內(nèi)存的環(huán)形緩沖區(qū)中,其中時間上最老的歷史日志 信息作為該環(huán)形緩沖區(qū)的頭部,相應(yīng)地時間上最新的歷史日志信息作為該環(huán)形緩沖區(qū)的尾 部;顯示歷史日志信息時,從該環(huán)形緩沖區(qū)的頭部開始顯示,所以歷史日志信息顯示時會嚴 格按照時間先后順序進行顯示; 該環(huán)形緩沖區(qū)的大小遠大于日志文件的大小的上限值,該大小是根據(jù)FALSH存儲 器空間大小和實際應(yīng)用相結(jié)合確定的; 步驟S220,系統(tǒng)日志動態(tài)存儲功能開啟情況下,每當(dāng)產(chǎn)生新的日志信息,將新產(chǎn)生 的日志信息以字符串的形式添加到該環(huán)形緩沖區(qū)的尾部之后,當(dāng)然一般而言是在之前的數(shù) 據(jù)后連續(xù)存儲;該新產(chǎn)生的日志信息即為該環(huán)形緩沖區(qū)當(dāng)前的尾部;如果存儲該新產(chǎn)生的 日志信息時覆蓋了該環(huán)形緩沖區(qū)中原有的數(shù)據(jù),則需要將該環(huán)形緩沖區(qū)中時間上最老的日 志信息作為該環(huán)形緩沖區(qū)當(dāng)前的頭部; 在本實施例中,新產(chǎn)生的日志信息直接添加到環(huán)形緩沖區(qū)的尾部,不必像前述的 定長緩沖區(qū)那樣要為新產(chǎn)生的日志信息移出空間而移動所有的日志信息,相比較而言,環(huán) 形緩沖區(qū)在添加日志信息時不需要移動緩沖區(qū)中的數(shù)據(jù),節(jié)約了系統(tǒng)資源,而且也不用判 斷環(huán)形緩沖區(qū)是否填滿,因為環(huán)形緩沖區(qū)是一個環(huán)形的存儲結(jié)構(gòu),填滿之后直接覆蓋緩沖區(qū)頭部老的日志信息即可,因此處理效率也更高; 環(huán)形存儲器的數(shù)據(jù)存儲方式,也保證了整個環(huán)形緩沖區(qū)中從頭部到尾部的日志信
息是嚴格按照時間順序存儲的,避免了在存儲日志信息時產(chǎn)生時間混亂的問題; 步驟S230,在每個日志寫入周期,檢查該環(huán)形緩沖區(qū)中是否存儲有新產(chǎn)生的日志
信息,是則轉(zhuǎn)步驟S240,否則轉(zhuǎn)步驟S250 ; 步驟S240,將環(huán)形緩沖區(qū)中的日志信息寫入到FALSH存儲器的日志文件中,結(jié)束;
步驟S250,在系統(tǒng)日志功能關(guān)閉、任何原因造成的系統(tǒng)復(fù)位或者系統(tǒng)掉電等系統(tǒng)日志功能無效時(對于系統(tǒng)掉電,則為掉電保護電路失效前),檢查該環(huán)形緩沖區(qū)中是否存儲有新產(chǎn)生的日志信息,是則轉(zhuǎn)步驟S260,否則結(jié)束; 步驟S260,將環(huán)形緩沖區(qū)中的日志信息寫入到FALSH存儲器中的日志文件中,然后結(jié)束。 上述步驟S210中,如果FLASH存儲器中沒有歷史日志信息,則步驟S220中直接將新產(chǎn)生的日志信息從該環(huán)形緩沖區(qū)的頭部開始,按照時間順序依次存儲。
在步驟S220中,在環(huán)形緩沖區(qū)中存入新產(chǎn)生的日志信息后,都設(shè)置一個新日志信息標(biāo)志位,在本實施例中是通過該標(biāo)志位的值為TRUE來表示最近一個日志寫入周期有新的日志信息產(chǎn)生,為FALSE來表示最近一個日志寫入周期沒有新的日志信息產(chǎn)生。在步驟S230及步驟S250中,根據(jù)該新日志信息標(biāo)志位來檢查環(huán)形緩沖區(qū)中是否存儲有新產(chǎn)生的日志信息。相應(yīng)地,在步驟S240及步驟S260中,在日志信息寫入到FALSH存儲器中的日志文件中之后,將新日志信息標(biāo)志位的值置為FALSE。 需要說明的是,圖1所示實施例中的定長緩沖區(qū)也可以是一環(huán)形的緩沖區(qū),與圖2所示實施例中環(huán)形緩沖區(qū)的區(qū)別是存儲新產(chǎn)生的日志信息時,采用不同的存儲方式,即圖1所示實施例是整體將緩沖區(qū)中已有的日志信息往后部移動,即那個新產(chǎn)生的日志信息存儲在緩沖區(qū)的頭部,而圖2所示實施例是在之前存儲的日志信息后連續(xù)存儲新產(chǎn)生的日志信息。 圖3是本發(fā)明動態(tài)存儲系統(tǒng)實施例的組成示意圖。結(jié)合圖1及圖2所示方法實施例,圖3所示的系統(tǒng)實施例主要包括設(shè)置模塊310、緩沖區(qū)320、存儲模塊330以及寫入模塊340,其中 設(shè)置模塊310,用于設(shè)置該緩沖區(qū)320,優(yōu)選地,該緩沖區(qū)320設(shè)在系統(tǒng)內(nèi)存中;
存儲模塊330,與該緩沖區(qū)320及提取模塊370相連,用于將該系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到該緩沖區(qū)320中;如果提取模塊370從非易失性存儲器(如FLASH存儲器)350中提取到歷史日志信息,則將該歷史日志信息存儲到緩沖區(qū)320中;
寫入模塊340,與該緩沖區(qū)320相連,用于根據(jù)日志寫入規(guī)則,或者在系統(tǒng)的日志功能無效時,將緩沖區(qū)320中的日志信息寫入日志文件中將該緩沖區(qū)320中的日志信息寫入非易失性存儲器350的日志文件中; 判斷模塊360,用于在啟動系統(tǒng)的動態(tài)存儲時判斷該非易失性存儲器350中是否含有日志文件的歷史日志信息; 提取模塊370,與該緩沖區(qū)320及該非易失性存儲器350相連,用于該判斷模塊360在系統(tǒng)啟動該動態(tài)存儲時判斷出該非易失性存儲器350中含有歷史日志信息時,將該新產(chǎn)生的日志信息存儲到該緩沖區(qū)320之前,提取該歷史日志信息;
移動模塊380,用于將該緩沖區(qū)320中的日志信息向該緩沖區(qū)320的尾部移動,在該緩沖區(qū)320的頭部留出該新產(chǎn)生的日志信息大小的預(yù)留空間。 對應(yīng)于圖1所示方法第一實施例,該存儲模塊330用于按照時間順序?qū)⒃摎v史日志信息存儲到該緩沖區(qū)320中,其中時間上最新的日志信息存儲在該緩沖區(qū)320的頭部,并用于將該新產(chǎn)生的日志信息存儲到該預(yù)留空間中。 其中,該提取模塊320提取該歷史日志信息時,按照所提取的歷史日志信息的時間順序?qū)⑺崛〉娜罩拘畔⒋鎯Φ皆摼彌_區(qū)320中,其中時間上最新的日志信息存儲在該緩沖區(qū)320的頭部。 對應(yīng)于圖2所示方法第二實施例,該存儲模塊330用于按照時間順序?qū)⒃摎v史日
志信息存儲到該緩沖區(qū)320中,其中時間上最老的日志信息存儲在該緩沖區(qū)320的頭部,并
用于在該緩沖區(qū)中時間上最新的日志信息后連續(xù)存儲該新產(chǎn)生的日志信息。 其中,該提取模塊320提取該歷史日志信息時,按照所提取的歷史日志信息的時
間順序?qū)⑺崛〉臍v史日志信息存儲到該緩沖區(qū)320中,其中時間上最老的日志信息存儲
在該緩沖區(qū)320的頭部。 需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。另外,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。 雖然本發(fā)明所揭露的實施方式如上,但所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實施的形式上及細節(jié)上作任何的修改與變化,但本發(fā)明的專利保護范圍,仍須以所附的權(quán)利要求書所界定的范圍為準。
權(quán)利要求
一種日志信息的動態(tài)存儲方法,其特征在于,包括預(yù)設(shè)一緩沖區(qū);將系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到所述緩沖區(qū)中;將所述緩沖區(qū)中的日志信息寫入非易失性存儲器的日志文件中。
2. 如權(quán)利要求l所述的方法,其特征在于啟動所述動態(tài)存儲時,如果所述非易失性存儲器中含有歷史日志信息,則將所述新產(chǎn) 生的日志信息存儲到所述緩沖區(qū)之前,進一步提取所述歷史日志信息并存儲到所述緩沖區(qū) 中。
3. 如權(quán)利要求2所述的方法,其特征在于提取所述歷史日志信息時,按照時間順序?qū)⑺鰵v史日志信息存儲到所述緩沖區(qū)中, 其中時間上最新的歷史日志信息存儲在所述緩沖區(qū)的頭部;每當(dāng)存儲所述新產(chǎn)生的日志信息時,將所述緩沖區(qū)中的日志信息向所述緩沖區(qū)的尾部 移動,在所述緩沖區(qū)的頭部留出所述新產(chǎn)生的日志信息大小的預(yù)留空間,并將所述新產(chǎn)生 的日志信息存儲到所述預(yù)留空間中。
4. 如權(quán)利要求2所述的方法,其特征在于提取所述歷史日志信息時,按照時間順序?qū)⑺鰵v史日志信息存儲到所述緩沖區(qū)中, 其中時間上最老的歷史日志信息存儲在所述緩沖區(qū)的頭部;每當(dāng)存儲所述新產(chǎn)生的日志信息時,在所述緩沖區(qū)中時間上最新的日志信息后連續(xù)存 儲所述新的日志信息。
5. 如權(quán)利要求1所述的方法,其特征在于根據(jù)日志寫入規(guī)則,或者在所述系統(tǒng)的日志功能無效時,將所述緩沖區(qū)中的日志信息 寫入所述日志文件中。
6. —種日志信息的動態(tài)存儲系統(tǒng),其特征在于,包括 設(shè)置模塊,用于設(shè)置一緩沖區(qū);存儲模塊,用于將系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到所述緩沖區(qū)中; 寫入模塊,用于將所述緩沖區(qū)中的日志信息寫入非易失性存儲器的日志文件中。
7. 如權(quán)利要求6所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括判斷模塊,用于在啟動所述動態(tài)存儲時判斷所述非易失性存儲器中是否含有歷史日志 信息;提取模塊,用于所述判斷模塊在啟動所述動態(tài)存儲時判斷出所述非易失性存儲器中含 有歷史日志信息時,將所述新產(chǎn)生的日志信息存儲到所述緩沖區(qū)之前,提取所述歷史日志 信息;其中,所述存儲模塊進一步用于將所述歷史日志信息存儲到所述緩沖區(qū)中。
8. 如權(quán)利要求7所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括移動模塊,用于將所述緩沖區(qū)中的日志信息向所述緩沖區(qū)的尾部移動,在所述緩沖區(qū) 的頭部留出所述新產(chǎn)生的日志信息大小的預(yù)留空間; 其中,所述存儲模塊,用于按照時間順序?qū)⑺鰵v史日志信息存儲到所述緩沖區(qū)中,其中時 間上最新的日志信息存儲在所述緩沖區(qū)的頭部,并用于將所述新產(chǎn)生的日志信息存儲到所述預(yù)留空間中。
9. 如權(quán)利要求7所述的系統(tǒng),其特征在于所述存儲模塊,用于按照時間順序?qū)⑺鰵v史日志信息存儲到所述緩沖區(qū)中,其中時 間上最老的日志信息存儲在所述緩沖區(qū)的頭部,并用于在所述緩沖區(qū)中時間上最新的日志 信息后連續(xù)存儲所述新產(chǎn)生的日志信息。
10. 如權(quán)利要求6所述的系統(tǒng),其特征在于所述寫入模塊用于根據(jù)日志寫入規(guī)則,或者在所述系統(tǒng)的日志功能無效時,將所述緩 沖區(qū)中的日志信息寫入所述日志文件中。
全文摘要
本發(fā)明公開了一種日志信息的動態(tài)存儲系統(tǒng)及方法,以降低存儲日志信息過程中擦寫存儲器的頻率。其中該方法主要包括預(yù)設(shè)一緩沖區(qū);將系統(tǒng)新產(chǎn)生的日志信息按時間順序存儲到所述緩沖區(qū)中;將所述緩沖區(qū)中的日志信息寫入非易失性存儲器的日志文件中。與現(xiàn)有技術(shù)相比,本發(fā)明提出的日志信息動態(tài)存儲技術(shù)通過嚴格按照時間順序緩存日志信息,然后再一次性地寫入到存儲器中,解決了現(xiàn)有動態(tài)日志信息存儲過程中存儲器的擦寫過于頻繁的問題,較好地延長了存儲器以及系統(tǒng)的使用壽命。
文檔編號G06F11/34GK101788948SQ201010108170
公開日2010年7月28日 申請日期2010年2月5日 優(yōu)先權(quán)日2010年2月5日
發(fā)明者陳東華 申請人:瑞斯康達科技發(fā)展股份有限公司