專利名稱:一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)領(lǐng)域,更具體地說,涉及一種涉及嵌入式系統(tǒng)的 日志功能實(shí)現(xiàn)方法。
背景技術(shù):
日志功能對于系統(tǒng)在運(yùn)行中發(fā)現(xiàn)的問題,尤其是不可重現(xiàn)問題的定位有 著非常重要的作用。在用戶的環(huán)境中,問題出現(xiàn)后,僅僅依靠操作描述和當(dāng)
前的現(xiàn)象,很難分析出問題的具體原因;而期望占用用戶的運(yùn)營環(huán)境來進(jìn)行 問題的重現(xiàn)是不現(xiàn)實(shí)的,還可能引入新的問題,造成更加嚴(yán)重的后果和不良 影響。
在嵌入式系統(tǒng)中,系統(tǒng)的存儲介質(zhì)訪問速度很慢,頻繁的讀寫訪問對系 統(tǒng)資源消耗嚴(yán)重,在當(dāng)前硬件系統(tǒng)CPU速度和內(nèi)存容量越來越強(qiáng)的情況下, 嵌入式系統(tǒng)的存貯介質(zhì)訪問成為了系統(tǒng)性能的瓶頸。
而另外一個方面是,嵌入式系統(tǒng)的存儲介質(zhì)空間有限,龐大的系統(tǒng)曰志, 會占用大量的存儲介質(zhì)空間,浪費(fèi)了系統(tǒng)資源。
從信息安全保密的角度來看,明文的日志信息,也容易泄露產(chǎn)品的研發(fā) 信息。
發(fā)明內(nèi)容
本發(fā)明所解決的技術(shù)問題在于提供一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方 法,以解決對存貯介質(zhì)的讀寫次數(shù)和對存貯介質(zhì)空間的占用等問題。
為了解決上述問題,本發(fā)明提供了一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法, 包括以下步驟
對所述嵌入式系統(tǒng)的日志信息進(jìn)行過濾;在所述嵌入式系統(tǒng)內(nèi)設(shè)置內(nèi)存緩沖池,將過濾后的日志信息保存在所述
內(nèi)存緩沖池中;
在寫緩存條件觸發(fā)后,將所述內(nèi)存緩沖池中的日志信息進(jìn)行壓縮,將壓 縮后的日志信息寫入日志文件。
本發(fā)明所述的方法,其中,對所述嵌入式系統(tǒng)的日志信息進(jìn)行過濾,包 括對所述嵌入式系統(tǒng)的日志信息按內(nèi)容過濾、按級別過濾、按才莫塊過濾或 日志信息轉(zhuǎn)換其中一種或幾種的結(jié)合進(jìn)行過濾。
其中,所述按內(nèi)容過濾,為對日志信息記錄的詳細(xì)信息進(jìn)行取舍,所述 詳細(xì)信息包括文件名、文件行、時(shí)間、任務(wù)進(jìn)程號、提示信息字符串、關(guān)鍵 字內(nèi)容。
其中,所述按級別過濾,為根據(jù)日志信息記錄的嚴(yán)重等級進(jìn)行過濾,保 留記錄所述嵌入式系統(tǒng)異常日志信息和/或者保留記錄所述嵌入式系統(tǒng)錯誤 日志信息。
其中,所述按模塊過濾,為根據(jù)日志記錄的模塊進(jìn)行過濾。
其中,所述日志信息轉(zhuǎn)換,為將日志信息中的提示信息、字符串信息進(jìn) 行壓縮,保留格式化輸出的關(guān)鍵值,將提示信息、字符串信息舍去。
其中,在所述嵌入式系統(tǒng)內(nèi)設(shè)置內(nèi)存緩沖池,將過濾后的日志信息保存 在所述內(nèi)存緩沖池中,進(jìn)一步包括在所述嵌入式系統(tǒng)內(nèi)設(shè)置兩個內(nèi)存緩沖 池,將過濾后的日志信息保存在所述內(nèi)存緩沖池的其中一個,在該內(nèi)存緩沖 池滿時(shí),啟動壓縮,并在壓縮過程中的將后續(xù)的所述日志信息記錄到另一個 內(nèi)存緩沖池中。
其中,所述寫緩存條件,包括當(dāng)前寫入內(nèi)存緩沖池滿、系統(tǒng)異常、命令 觸發(fā);所述命令觸發(fā),包括網(wǎng)管命令觸發(fā)、命令行命令觸發(fā)。
其中,進(jìn)一步還包括
從所述嵌入式系統(tǒng)上取得日志文件,進(jìn)行解壓,讀取相關(guān)的日志信息。 其中,所述壓縮采用LZ壓縮算法。
與現(xiàn)有技術(shù)相比4交,本發(fā)明的方法采用日志過濾和壓縮后,日志信息的 壓縮比可以達(dá)到10: 1以上,大大減少了對存儲介質(zhì)的讀寫訪問,提高了嵌入式系統(tǒng)的性能。
圖1是本發(fā)明中實(shí)施例所述的嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法流程圖。
具體實(shí)施例方式
本發(fā)明在這里提供了一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法,以解決對存 貯介質(zhì)的讀寫次數(shù)和對存貯介質(zhì)空間的占用等問題。以下對具體實(shí)施方式
進(jìn) 行詳細(xì)描述,但不作為對本發(fā)明的限定。
如圖1所示,本發(fā)明所述的一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法,具體
包括如下步驟
步驟101,對嵌入式系統(tǒng)的日志信息進(jìn)行過濾,具體的日志信息過濾操 作包括按內(nèi)容過濾、按級別過濾、按模塊過濾、日志信息轉(zhuǎn)換(以上四種 過濾方法是平等的,可以組合使用也可單獨(dú)使用)。
具體地,對日志信息進(jìn)行過濾,按內(nèi)容過濾可以體現(xiàn)為對日志記錄的 詳細(xì)信息如文件名、文件行、時(shí)間、任務(wù)進(jìn)程號、提示信息字符串、等進(jìn)行 取舍,比如只記錄文件名、文件行、關(guān)鍵字內(nèi)容或者是只記錄文件名、文件 行;按級別過濾可以體現(xiàn)為根據(jù)日志記錄的嚴(yán)重等級進(jìn)行過濾,比如只記 錄系統(tǒng)異常日志或者只記錄錯誤日志;按才莫塊過濾可以體現(xiàn)為根據(jù)日志記 錄的模塊進(jìn)行過濾;日志信息轉(zhuǎn)換可以體現(xiàn)為將日志信息中的提示信息字符 串信息進(jìn)行壓縮,比如只保留格式化輸出的關(guān)鍵值,將提示字符串舍去。
這里本實(shí)施例采用日志信息轉(zhuǎn)換,對日志記錄的字符串描述信息進(jìn)行過 濾,采用只保留日志信息中格式化關(guān)鍵值方式。比如日志描述信息為"system initialize error",如果設(shè)置了日志信息轉(zhuǎn)化,通過日志過濾,可以將日志描述 信息壓縮為空"";比如日志描述信息為"system initialize error, error code %d, error", 如果設(shè)置了日志信息轉(zhuǎn)化,通過日志過濾,可以將日志描述信息壓 縮為"Q/。d, error"。
步驟102,在嵌入式系統(tǒng)內(nèi)設(shè)置內(nèi)存緩沖池,將過濾后的日志信息保存在內(nèi)存緩沖池中。
具體地,可以是在嵌入式系統(tǒng)中開辟(設(shè)置)2塊(比如64K)的內(nèi)存 緩沖池,以主用代表當(dāng)前使用內(nèi)存緩沖池。在過濾后的日志信息寫入緩沖池 時(shí),判斷主用內(nèi)存緩沖池是否已滿,當(dāng)主用內(nèi)存緩沖池滿時(shí),啟動日志壓縮, 并在壓縮過程中,標(biāo)明備用內(nèi)存池為當(dāng)前內(nèi)存緩沖池,將后續(xù)的日志信息記 錄到當(dāng)前內(nèi)存緩沖池中。
步驟1(B,在寫緩存條件觸發(fā)后,將內(nèi)存緩沖池中的日志信息進(jìn)行壓縮, 將壓縮后的日志信息寫入日志文件。這里寫緩存條件,包括當(dāng)前寫入內(nèi)存緩 沖池滿、系統(tǒng)異常、命令觸發(fā)。
具體地,當(dāng)系統(tǒng)異常時(shí),可以在系統(tǒng)異常中斷,啟動對內(nèi)存緩沖池中的 日志信息進(jìn)行壓縮,將壓縮后的日志信息寫入日志文件。
或者,提供外部命令驅(qū)動(觸發(fā))比如網(wǎng)管命令、命令行命令等,在收 到外部命令時(shí),啟動對內(nèi)存緩沖池中的日志信息進(jìn)行壓縮,將壓縮后的日志 信息寫入日志文件。
對于保存在內(nèi)存緩沖池中的日志信息,進(jìn)行壓縮時(shí),需要考慮壓縮算法 對系統(tǒng)的影響,這里可以采用壓縮速度快的LZ (Lempel-Ziv)壓縮算法,內(nèi) 存^f吏用固定,壓縮速度快,對日志信息的壓縮可以達(dá)到10: l的壓縮比。
將日志信息進(jìn)行的壓縮后,也可以再進(jìn)行緩存,當(dāng)壓縮后的日志信息達(dá) 到指定的大小的時(shí)候,將壓縮后的文件寫入存儲介質(zhì)中,從而減少文件讀寫 次數(shù)。
采用本發(fā)明的日志過濾和壓縮后,日志信息的壓縮比可以達(dá)到10: l以 上,大大減少了對存儲介質(zhì)的讀寫訪問,提高了系統(tǒng)的性能。總之,本發(fā)明 對通過日志過濾和日志壓縮,從而大大減少寫入存儲介質(zhì)的文件信息,從而 減少存儲介質(zhì)的讀寫次數(shù)和占用空間。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的 情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明做出各種相應(yīng)的改變和變形, 但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1、一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法,其特征在于,包括以下步驟對所述嵌入式系統(tǒng)的日志信息進(jìn)行過濾;在所述嵌入式系統(tǒng)內(nèi)設(shè)置內(nèi)存緩沖池,將過濾后的日志信息保存在所述內(nèi)存緩沖池中;在寫緩存條件觸發(fā)后,將所述內(nèi)存緩沖池中的日志信息進(jìn)行壓縮,將壓縮后的日志信息寫入日志文件。
2、 如權(quán)利要求l所述的方法,其特征在于,對所述嵌入式系統(tǒng)的日志信 息進(jìn)行過濾,包括對所述嵌入式系統(tǒng)的日志信息按內(nèi)容過濾、按級別過濾、 按^f莫塊過濾或日志信息轉(zhuǎn)換其中一種或幾種的結(jié)合進(jìn)行過濾。
3、 如權(quán)利要求2所述的方法,其特征在于,所述按內(nèi)容過濾,為對曰志 信息記錄的詳細(xì)信息進(jìn)行取舍,所述詳細(xì)信息包括文件名、文件行、時(shí)間、 任務(wù)進(jìn)程號、提示信息字符串、關(guān)鍵字內(nèi)容。
4、 如權(quán)利要求2所述的方法,其特征在于,所述按級別過濾,為4艮據(jù)日 志信息記錄的嚴(yán)重等級進(jìn)行過濾,保留記錄所述嵌入式系統(tǒng)異常日志信息和/ 或者保留記錄所述嵌入式系統(tǒng)錯誤日志信息。
5、 如權(quán)利要求2所述的方法,其特征在于,所述按模塊過濾,為根據(jù)日 志記錄的;f莫塊進(jìn)行過濾。
6、 如權(quán)利要求2所述的方法,其特征在于,所述日志信息轉(zhuǎn)換,為將日 志信息中的提示信息、字符串信息進(jìn)行壓縮,保留格式化輸出的關(guān)鍵值,將 提示信息、字符串信息舍去。
7、 如權(quán)利要求l所述的方法,其特征在于,在所述嵌入式系統(tǒng)內(nèi)設(shè)置內(nèi) 存緩沖池,將過濾后的日志信息保存在所述內(nèi)存緩沖池中,進(jìn)一步包括在 所述嵌入式系統(tǒng)內(nèi)設(shè)置兩個內(nèi)存緩沖池,將ii濾后的日志信息保存在所述內(nèi) 存緩沖池的其中一個,在該內(nèi)存緩沖池滿時(shí),啟動壓縮,并在壓縮過程中的 將后續(xù)的所述日志信息記錄到另 一個內(nèi)存緩沖池中。
8、 如權(quán)利要求3所述的方法,其特征在于,所述寫緩存條件,包括當(dāng)前 寫入內(nèi)存緩沖池滿、系統(tǒng)異常、命令觸發(fā);所述命令觸發(fā),包括網(wǎng)管命令觸發(fā)、命令行命令觸發(fā)。
9、 如權(quán)利要求l所述的方法,其特征在于,進(jìn)一步還包括 從所述嵌入式系統(tǒng)上取得日志文件,進(jìn)行解壓,讀糾目關(guān)的日志信息。
10、 如權(quán)利要求1或7所述的方法,其特征在于,所述壓縮釆用LZ壓縮 算法。
全文摘要
本發(fā)明公開了一種嵌入式系統(tǒng)的日志功能實(shí)現(xiàn)方法,包括以下步驟對嵌入式系統(tǒng)的日志信息進(jìn)行過濾;在嵌入式系統(tǒng)內(nèi)設(shè)置內(nèi)存緩沖池,將過濾后的日志信息保存在內(nèi)存緩沖池中;在寫緩存條件觸發(fā)后,將內(nèi)存緩沖池中的日志信息進(jìn)行壓縮,將壓縮后的日志信息寫入日志文件。本發(fā)明的方法采用日志過濾和壓縮后,日志信息的壓縮比可以達(dá)到10∶1以上,大大減少了對存儲介質(zhì)的讀寫訪問,提高了嵌入式系統(tǒng)的性能。
文檔編號G06F11/34GK101320348SQ20081012751
公開日2008年12月10日 申請日期2008年6月25日 優(yōu)先權(quán)日2008年6月25日
發(fā)明者銳 張 申請人:中興通訊股份有限公司