本發明專利技術公開了一種基于文件系統的日志存儲方法,該方法設置日志文件,將需要存儲的日志以日志記錄的形式寫入至日志文件中,利用文件系統管理日志文件和存儲設備,并將日志文件中的日志存儲到存儲設備中。本發明專利技術通過設置日志文件、將日志以日志記錄的形式存儲到日志文件中,并借助于文件系統對日志文件進行存儲管理,降低了日志管理復雜度,提高了日志的存儲速度。
【技術實現步驟摘要】
本專利技術涉及數據處理技術,具體地說,是涉及日志存儲方法,更具體地說,是涉及。
技術介紹
日志可以記錄操作發生的具體時間和相關的信息,以機頂盒為例,可以記錄開機的全過程、用戶的換臺、按鍵、信號檢測、搜臺、設置、進入/退出某功能頁面等操作。通過日志,可以為系統死機或者崩潰現場保留最后的有效記錄,便于開發人員或者維護人員根據相關信息及時快速地分析、定位死機或崩潰的位置和原因,從而大大縮減開發和維護的時間,節省人力資源成本。現有機頂盒、手機等嵌入式設備中為了存儲日志,通常采用Flash方式,該方式需要對硬件Flash進行操作來實現。由于Flash以塊或扇區為操作單元,各塊或扇區如果要寫入數據,首先需要擦除,而擦除的最小單位必須是塊或扇區;而且,在塊或扇區中存儲時, 可能會出現跨塊或扇區存儲的情況,因此,直接操作Flash寫入日志過程復雜,寫入速度較慢,使用不方便。
技術實現思路
本專利技術的目的在于提供,通過設置日志文件、 將日志以日志記錄的形式存儲到日志文件中,并借助于文件系統對日志文件進行存儲管理,降低了日志管理復雜度,提高了日志的存儲速度。為實現上述專利技術目的,本專利技術采用下述技術方案予以實現,其特征在于,設置日志文件,將需要存儲的日志以日志記錄的形式寫入至日志文件中,利用文件系統管理日志文件和存儲設備,并將日志文件中的日志存儲到存儲設備中。如上所述的方法,為便于日志的使用,所述日志記錄包括記錄時間字段、記錄內容字段和記錄結束標志字段。優選的,所述記錄結束標志為回車字符。如上所述的方法,為避免丟失日志,在所述日志文件中新寫入的日志記錄大于設定數量時,控制所述文件系統將日志文件中的日志記錄寫入到所述存儲設備中。如上所述的方法,可以采用下述方法將當前日志記錄寫入至所述日志文件中 計算當前日志記錄的長度;判斷日志文件剩余空間能否存放當前日志記錄;在剩余空間能存放當前日志記錄時,將當前日志記錄根據寫指針位置寫入至剩余空間;否則,將寫指針移動到最早寫入的日志記錄的首地址,將當前日志記錄從該首地址開始寫入。如上所述的方法,為提高日志存儲的安全性,在將當前日志記錄寫入到所述日志文件中之后,將寫指針保存到獨立于日志文件的索引文件中;在下次寫入日志記錄時,從索引文件中讀取與指針。如上所述的方法,為便于調整日志記錄的寫入速度、防止因大量無效或重復記錄的寫入而占用日志文件存儲空間及降低Flash讀寫速度,在寫入當前日志記錄之前,首先判斷日志記錄的寫入頻率是否大于設定的采樣頻率;若寫入頻率大于采樣頻率,則判斷當前日志記錄是否需要丟棄,若丟棄,放棄當前日志記錄的寫入,否則,將當前日志記錄寫入至所述日志文件。如上所述的方法,日志記錄可根據隨機數來選擇性丟棄、以保證盡可能多地保存有用記錄,具體來說,可以采用下述方法判斷當前日志記錄是否需要丟棄在設定的隨機數取值范圍內獲取隨機數,根據隨機數與隨機數取值范圍及所述設定的采樣頻率的大小關系判斷與隨機數相對應的當前日志記錄是否需要丟棄。優選的,在當前日志記錄相對應的隨機數不小于所述隨機數取值范圍與所述設定的采樣頻率之差時,判定當前日志記錄需要丟棄。如上所述的方法,為提高處理速度,在所述日志記錄的寫入頻率大于所述設定的采樣頻率時,首先設置溢出標志,然后再判斷當前日志記錄是否需要丟棄。與現有技術相比,本專利技術的優點和積極效果是通過設置日志文件、將日志以日志記錄的形式存儲到日志文件中,并借助于文件系統對日志文件進行存儲管理,降低了日志管理復雜度,提高了日志的存儲速度。結合附圖閱讀本專利技術的具體實施方式后,本專利技術的其他特點和優點將變得更加清λ·Μ/E. ο附圖說明圖1本專利技術基于文件系統的日志存儲方法一個實施例的流程圖;圖2本專利技術基于文件系統的日志存儲方法另一個實施例的流程圖;圖3是圖2實施例中調整日志記錄寫入頻率的一個具體流程圖。具體實施方式下面結合附圖和具體實施方式對本專利技術的技術方案作進一步詳細的說明。首先,簡要說明本專利技術的技術思路現有機頂盒、手機等嵌入式設備一般都采用 Linux操作系統,具有虛擬文件系統VFS,支持文件操作,并能夠利用VFS對物理存儲設備進行統一分配和管理。基于此,本專利技術提出了設置日志文件、將日志以日志記錄的形式寫入至日志文件中的日志存儲方法。對于日志文件,就可以利用文件系統進行管理,并通過文件系統將日志存儲到Flash等存儲設備上。如此一來,開發人員只需要指定日志文件、將設備軟件運行過程中產生的日志寫入到日志文件中,在使用日志時,也僅需要從日志文件中讀取即可,無需關心如何從存儲設備上如何讀和寫,這些工作全部通過文件系統來實現,從而能夠降低日志管理復雜度,減少軟件開發人員的工作量,從軟件開發角度來看,有利于提高日志存儲速度,降低軟件開發成本。請參考圖1,該圖1示出了本專利技術基于文件系統的日志存儲方法一個實施例的流程圖,該實施例以采用Linux系統的機頂盒存儲日志為例,機頂盒操作系統支持文件系統,且根據系統運行性能和Flash存儲設備的大小預先設置了一個存儲日志的日志文件。如圖I所示,該實施例存儲日志的過程如下步驟101:流程開始。步驟102 :計算當前日志記錄的長度。在該實施例中,日志將以記錄的形式存儲到日志文件中。在以記錄形式存儲時,日志記錄包括有依次排列的記錄時間字段、記錄內容字段和記錄結束標志字段。其中,記錄時間字段用來標識日志發生的時間。利用該時間字段,一方面便于獲知日志何時發生,有利于對日志內容進行時間定位;另一方面,便于判斷不同日志發生的先后順序,以識別日志寫入到文件中的順序。記錄內容字段為日志的具體內容,一般以字符串的形式顯示日志內容。記錄結束標志字段用來標志一條記錄的結束,優選為回車字符字段。通過設置記錄結束標志, 可以直接區分出一條完整的日志記錄,不僅便于日志的寫入,且在日志導出后,無需做額外的記錄與記錄之間的區分既可以保證有關人員正確進行的日志瀏覽。對于包括有上述多個字段的當前日志記錄來說,其長度是所有字段的長度總和。在寫入日志之前,首先計算當前日志記錄的長度,也即記錄中所有字段所占的總字節數。步驟103 :判斷日志文件的剩余空間是否還足夠用來存放當前日志記錄。若是,執行步驟106 ;否則,執行步驟104。可采用下述方法判斷剩余空間是否足夠當前寫指針的位置加上要寫入的當前日志記錄的長度是否大于日志文件的結束地址。若大于,說明剩余空間不足以存儲當前日志記錄;否則,判定剩余空間足夠。步驟104 :在日志文件的剩余空間不足時,將寫指針移動到最早寫入的日志記錄的首地址。由產品文件管理系統性能及存儲設備容量等因素所限,分配來存儲日志的文件大小是有限的,為保證在有限存儲空間的文件中盡可能寫入有用日志,如果存儲空間不足,則將當前日志記錄覆蓋最早寫入的記錄。具體來說,是將寫指針移動到最早寫入的日志記錄的首地址。而且,可以根據日志記錄中的記錄時間字段中的時間來判斷哪條記錄時最早寫入的記錄。步驟105 :將當前日志記錄從該首地址開始寫入。然后,轉至步驟107。步驟106 :在日志文件的剩余空間足夠時,根據寫指針將當前日志記錄寫入至剩余空間。然后,執行步驟107。步驟107 :利用文件系統將日志存儲到存儲設備中。該步驟是文件系統自動處理的過程,無需用戶參與。步驟108 :流程結束。在本文檔來自技高網...
【技術保護點】
一種基于文件系統的日志存儲方法,其特征在于,設置日志文件,將需要存儲的日志以日志記錄的形式寫入至日志文件中,利用文件系統管理日志文件和存儲設備,并將日志文件中的日志存儲到存儲設備中。
【技術特征摘要】
【專利技術屬性】
技術研發人員:張淑巖,
申請(專利權)人:青島海信寬帶多媒體技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。