本發(fā)明涉及云終端日志處理技術(shù)領(lǐng)域,特別涉及一種云終端日志處理方法、裝置及系統(tǒng)。
背景技術(shù):
日志系統(tǒng)是協(xié)助云終端開發(fā)及故障分析調(diào)試的必不可少的工具和手段。在目前的云終端系統(tǒng)中,操作系統(tǒng)包括了andriod、linux、windows等各型操作系統(tǒng),從開發(fā)角度上日志系統(tǒng)需要易于移植;由于云終端一般配置較低,日志系統(tǒng)必須占用磁盤、內(nèi)存、CPU資源;由于云終端功能模塊復(fù)雜,日志必須方便定位和分析問題。
已有的日志系統(tǒng)往往不能顧及到所有的方面,存在著可移植性差、資源占用高或者分析效率低等一個或者幾個問題。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種云終端日志處理方法、裝置及系統(tǒng),用以解決現(xiàn)有的云終端日志系統(tǒng)存在著可移植性差、資源占用高或者分析效率低等問題。
為了解決上述技術(shù)問題,本發(fā)明實施例提供一種云終端日志處理方法,應(yīng)用于服務(wù)器端,包括:
接收與云終端上的模塊相連接的客戶端上傳的日志信息;
獲取預(yù)先設(shè)定的日志保存配置參數(shù);
根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述獲取預(yù)先設(shè)定的日志保存配置參數(shù)的步驟具體為:
獲取與所述客戶端共用的共享內(nèi)存中的日志保存配置參數(shù),所述日志保存配置參數(shù)由配置文件映射到所述共享內(nèi)存中。
進一步地,所述根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中的步驟包括:
將所述日志信息存入緩存隊列;
在滿足預(yù)設(shè)條件時,按照所述日志保存配置參數(shù),將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,在滿足預(yù)設(shè)條件時,按照所述日志保存配置參數(shù),將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中的步驟具體為:
當(dāng)所述緩存隊列中緩存的日志信息的條數(shù)達到預(yù)設(shè)值或緩存時間周期到達,且嵌入式數(shù)據(jù)庫處于未存滿的狀態(tài)時,按照所述日志保存配置參數(shù)中預(yù)設(shè)的日志存入速率,將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述云終端日志處理方法,還包括:
獲取外部配置命令,所述外部配置命令包含對日志保存配置參數(shù)的配置信息;
將所述外部配置命令中包含的所述配置信息存入配置文件;
將所述配置文件映射到與所述客戶端共用的共享內(nèi)存中。
進一步地,所述云終端日志處理方法,還包括:
獲取外部操作命令,所述外部操作命令包括對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除的命令;
獲取配置文件中的日志保存配置參數(shù),并依據(jù)所述日志保存配置參數(shù)對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除操作。
本發(fā)明實施例提供一種云終端日志處理裝置,應(yīng)用于服務(wù)器端,包括:
接收模塊,用于接收與云終端上的模塊相連接的客戶端上傳的日志信息;
參數(shù)獲取模塊,用于獲取預(yù)先設(shè)定的日志保存配置參數(shù);
存儲模塊,用于根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述存儲模塊包括:
緩存單元,用于將所述日志信息存入緩存隊列;
存儲單元,用于在滿足預(yù)設(shè)條件時,按照所述日志保存配置參數(shù),將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述云終端日志處理裝置,還包括:
配置命令獲取模塊,用于獲取外部配置命令,所述外部配置命令包含對日志保存配置參數(shù)的配置信息;
保存模塊,用于將所述外部配置命令中包含的所述配置信息存入配置文件;
映射模塊,用于將所述配置文件映射到與所述客戶端共用的共享內(nèi)存中。
進一步地,所述云終端日志處理裝置,還包括:
操作命令獲取模塊,用于獲取外部操作命令,所述外部操作命令包括對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除的命令;
操作模塊,用于獲取配置文件中的日志保存配置參數(shù),并依據(jù)所述日志保存配置參數(shù)對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除操作。
本發(fā)明實施例提供一種云終端日志處理方法,應(yīng)用于客戶端,包括:
建立與云終端上模塊的連接關(guān)系;
獲取所述模塊的日志內(nèi)容;
根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息;
將所述日志信息上傳給服務(wù)器端,使得所述服務(wù)器端將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述建立與云終端上模塊的連接關(guān)系的步驟具體為:
通過調(diào)用日志客戶進程接口,建立與所述云終端上模塊的連接關(guān)系。
進一步地,所述根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息的步驟包括:
獲取與所述服務(wù)器端共用的共享內(nèi)存中的日志保存配置參數(shù);
根據(jù)所述日志保存配置參數(shù)中的模塊級別信息,將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息。
進一步地,所述根據(jù)所述日志保存配置參數(shù)中的模塊級別信息,將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息的步驟包括:
若所述模塊級別信息表明所述模塊生成的日志內(nèi)容需要保存,則將預(yù)設(shè)長度的所述日志內(nèi)容生成標(biāo)準(zhǔn)格式的日志信息。
進一步地,所述標(biāo)準(zhǔn)格式的日志信息中包含:日志級別、日志生成時間、 所述日志信息對應(yīng)的模塊名以及生成的所述日志內(nèi)容。
本發(fā)明實施例提供一種云終端日志處理裝置,應(yīng)用于客戶端,包括:
連接模塊,用于建立與云終端上模塊的連接關(guān)系;
日志獲取模塊,用于獲取所述模塊的日志內(nèi)容;
生成模塊,用于根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息;
上傳模塊,用于將所述日志信息上傳給服務(wù)器端,使得所述服務(wù)器端將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述生成模塊包括:
第一獲取單元,用于獲取與所述服務(wù)器端共用的共享內(nèi)存中的日志保存配置參數(shù);
生成單元,用于根據(jù)所述日志保存配置參數(shù)中的模塊級別信息,將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息。
本發(fā)明實施例提供一種云終端日志處理系統(tǒng),包括:
云終端第一日志處理裝置和云終端第二日志處理裝置;其中,
所述云終端第一日志處理裝置包括:
連接模塊,用于建立與云終端上模塊的連接關(guān)系;
日志獲取模塊,用于獲取所述模塊的日志內(nèi)容;
生成模塊,用于根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息;
上傳模塊,用于將所述日志信息上傳給所述云終端第二日志處理裝置,使得所述云終端第二日志處理裝置將所述日志信息存儲至嵌入式數(shù)據(jù)庫中;
所述云終端第二日志處理裝置包括:
接收模塊,用于接收與云終端上的模塊相連接的所述云終端第一日志處理裝置上傳的日志信息;
參數(shù)獲取模塊,用于獲取預(yù)先設(shè)定的日志保存配置參數(shù);
存儲模塊,用于根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述云終端第二日志處理裝置還包括:
配置命令獲取模塊,用于獲取外部配置命令,所述外部配置命令包含對日志保存配置參數(shù)的配置信息;
保存模塊,用于將所述外部配置命令中包含的所述配置信息存入配置文件;
映射模塊,用于將所述配置文件映射到與所述云終端第一日志處理裝置共用的共享內(nèi)存中。
進一步地,所述云終端第二日志處理裝置還包括:
操作命令獲取模塊,用于獲取外部操作命令,所述外部操作命令包括對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除的命令;
操作模塊,用于獲取配置文件中的日志保存配置參數(shù),并依據(jù)所述日志保存配置參數(shù)對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除操作。
本發(fā)明的有益效果是:
上述方案,通過將云終端上的日志依據(jù)預(yù)設(shè)的日志保存配置參數(shù)存儲到嵌入式數(shù)據(jù)庫中,方便了對云終端上模塊日志的管理,節(jié)省了資源開銷,同時方便了云終端日志處理系統(tǒng)的移植。
附圖說明
圖1表示本發(fā)明實施例的應(yīng)用于服務(wù)器端的所述云終端日志處理方法的總體流程圖;
圖2表示本發(fā)明實施例的應(yīng)用于服務(wù)器端的所述云終端日志處理裝置的模塊示意圖;
圖3表示本發(fā)明實施例的應(yīng)用于客戶端的所述云終端日志處理方法的總體流程圖;
圖4表示本發(fā)明實施例的應(yīng)用于客戶端的所述云終端日志處理裝置的模塊示意圖;
圖5表示本發(fā)明實施例的所述云終端日志處理系統(tǒng)的靜態(tài)圖;
圖6表示本發(fā)明實施例的所述日志客戶端的主要實現(xiàn)流程圖;
圖7表示本發(fā)明實施例的所述日志服務(wù)器端的主要實現(xiàn)流程圖;
圖8表示本發(fā)明實施例的所述配置程序的主要處理流程。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖及具體實施例對本發(fā)明進行詳細(xì)描述。
本發(fā)明針對現(xiàn)有的云終端日志系統(tǒng)存在著可移植性差、資源占用高或者分析效率低的問題,提供一種云終端日志處理方法、裝置及系統(tǒng)。
如圖1所示,本發(fā)明實施例提供一種云終端日志處理方法,應(yīng)用于服務(wù)器端,包括:
步驟11,接收與云終端上的模塊相連接的客戶端上傳的日志信息;
步驟12,獲取預(yù)先設(shè)定的日志保存配置參數(shù);
步驟13,根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
上述方案,通過將云終端上的模塊在運行時生成的日志信息保存到嵌入式數(shù)據(jù)庫中,方便了對模塊日志的管理,在云終端出現(xiàn)問題時,能根據(jù)嵌入式數(shù)據(jù)庫中的日志信息,快速定位問題、分析問題與解決問題。
這里應(yīng)當(dāng)說明的是,因數(shù)據(jù)庫天然具有按關(guān)鍵字查詢分析的特征,能滿足復(fù)雜的分析需要,且操作簡單,本發(fā)明中使用嵌入式數(shù)據(jù)庫來記錄日志信息,方便了對日志信息的查找與定位;本發(fā)明中優(yōu)選地使用SQLite3數(shù)據(jù)庫(SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),所述ACID即Atomicity:原子性、Consistency:一致性、Isolation:隔離性、Durability:持久性),SQLite3數(shù)據(jù)庫是一種完全免費、開放的、支持多平臺的嵌入式數(shù)據(jù)庫,不存在版權(quán)和法律風(fēng)險;本系統(tǒng)可移植性相當(dāng)好,對于各平臺的移植,只需要更換SQLite3庫文件;系統(tǒng)資源占用低,分析效率高,可以提高研發(fā)和維護的效率,這樣的話,使得產(chǎn)品相對于目前行業(yè)上的其它產(chǎn)品具有獨特的優(yōu)勢。
本發(fā)明實施例的所述步驟12具體為:
獲取與所述客戶端共用的共享內(nèi)存中的日志保存配置參數(shù),所述日志保存配置參數(shù)由配置文件映射到所述共享內(nèi)存中。
應(yīng)當(dāng)說明的是,所述日志保存配置參數(shù)存儲在配置文件中,通過將配置文件中的信息映射到共享內(nèi)存中,直接在內(nèi)存中進行數(shù)據(jù)的讀取,提高了數(shù)據(jù)的讀取速率。
本發(fā)明實施例的所述步驟13包括:
步驟131,將所述日志信息存入緩存隊列;
步驟132,在滿足預(yù)設(shè)條件時,按照所述日志保存配置參數(shù),將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
應(yīng)當(dāng)說明的是,本發(fā)明中,所述服務(wù)器端接收的日志信息為客戶端預(yù)先生成的預(yù)設(shè)格式的日志信息,所述日志信息可以直接存儲到嵌入式數(shù)據(jù)庫中,本發(fā)明實施例的所述預(yù)設(shè)格式的日志信息,包括:日志級別、日志生成時間、所述日志信息對應(yīng)的模塊名以及生成的所述日志內(nèi)容;例如,所述日志信息格式為:debug 2012-11-29 19:40:40.792362proc1:this is test log。
應(yīng)當(dāng)說明的是,所述日志級別為日志的保存等級(即模塊對應(yīng)的日志的保存等級,也可以認(rèn)為是模塊的級別),本發(fā)明中,所述日志級別可以定義為以下四個等級:
nothing表示為不保存任何信息;debug表示為調(diào)試信息;info表示為一般提示信息;error表示為錯誤日志。
本發(fā)明中定義的配置文件的基本格式包括:
日志的保存等級以及日志的數(shù)據(jù)庫性能參數(shù)設(shè)置,如日志寫入數(shù)據(jù)庫的速率、數(shù)據(jù)庫的容量等。
具體地,本發(fā)明中提供的所述步驟132的一種實現(xiàn)方式為:
當(dāng)所述緩存隊列中緩存的日志信息的條數(shù)達到預(yù)設(shè)值或緩存時間周期到達,且嵌入式數(shù)據(jù)庫處于未存滿的狀態(tài)時,按照所述日志保存配置參數(shù)中預(yù)設(shè)的日志存入速率(即日志寫入數(shù)據(jù)庫的速率),將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
對上述實現(xiàn)方式舉例說明如下:
服務(wù)器端在接收到多條日志信息時,首先按照日志信息的接收順序,將日志信息暫存到緩存隊列中,緩存隊列邊進行存儲邊對日志信息的條數(shù)進行統(tǒng)計,在進行存儲時,可以將當(dāng)所述緩存隊列中的日志信息的條數(shù)大于或等于預(yù)設(shè)的日志存入速率作為進行存儲的依據(jù),這里應(yīng)當(dāng)說明的是,所述日志存入速率以日志信息的條數(shù)為單位進行存儲,舉例說明為:預(yù)設(shè)的日志寫入數(shù)據(jù)庫的速率為200條每秒,當(dāng)檢測到緩存隊列中的日志條數(shù)達到200條時,便將緩存隊列 中的日志信息存儲到嵌入式數(shù)據(jù)庫中;或者是在進行存儲時,可以將緩存隊列的時間周期作為進行存儲的依據(jù),當(dāng)所述緩存隊列的時間周期到達時,便需要將緩存隊列中的日志信息存儲到嵌入式數(shù)據(jù)庫中,例如:預(yù)設(shè)的緩存隊列的時間周期為100毫秒,在100毫秒的時間周期到達時,即表明需將緩存隊列中的日志信息存入嵌入式數(shù)據(jù)庫中;在進行寫入時,所述日志信息的寫入數(shù)據(jù)庫的速率不應(yīng)超過預(yù)設(shè)的日志存入速率,假設(shè)預(yù)設(shè)的日志存入速率為200條每秒,當(dāng)需要進行日志寫入時,所述緩存隊列中的日志信息條數(shù)為210條,所述日志的存入速率為200條每秒;而當(dāng)需要進行日志寫入時,所述緩存隊列中的日志信息條數(shù)為180條,所述日志的存入速率為180條每秒;這里還需要說明的是,在進行日志信息寫入時,首先要判斷數(shù)據(jù)庫是否未存滿,若數(shù)據(jù)庫的存儲容量已經(jīng)達到預(yù)設(shè)容量值,則不進行日志信息的寫入,直接將日志信息丟棄。
應(yīng)當(dāng)說明的是,本發(fā)明中還實現(xiàn)了對配置文件的修改與配置,因此,本發(fā)明實施例中,所述云終端日志處理方法,還包括:
獲取外部配置命令,所述外部配置命令包含對日志保存配置參數(shù)的配置信息;
將所述外部配置命令中包含的所述配置信息存入配置文件;
將所述配置文件映射到與所述客戶端共用的共享內(nèi)存中。
應(yīng)當(dāng)說明的是,所述外部配置命令主要包含對日志等級的配置命令,對數(shù)據(jù)庫容量的配置命令和對日志存入速率的配置命令。
在進行配置文件的使用時,可以直接將配置文件中的信息寫入到共享內(nèi)存,等待其他程序的調(diào)用,也可以在用到所述配置文件中的信息時,在將配置文件中的信息寫入到共享內(nèi)存。
本發(fā)明中還提供了數(shù)據(jù)庫中日志信息操作的方法,即所述云終端日志處理方法,還包括:
獲取外部操作命令,所述外部操作命令包括對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除的命令;
獲取配置文件中的日志保存配置參數(shù),并依據(jù)所述日志保存配置參數(shù)對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除操作。
需要說明的是,本發(fā)明中提供了數(shù)據(jù)庫中日志信息的讀取和刪除操作,當(dāng) 需要讀取日志信息時,首先需要設(shè)定要讀取的日志信息的讀取規(guī)則,如按級別讀取、按模塊讀取等,然后將所述規(guī)則與配置文件中的日志保存配置參數(shù)進行比對,如:所述讀取規(guī)則為按日志關(guān)鍵字讀取,而所述日志保存配置參數(shù)中未記錄所述日志的關(guān)鍵字信息,則無法實現(xiàn)對日志信息的讀取。
本發(fā)明上述方案,通過將客戶端獲取的日志信息存入嵌入式數(shù)據(jù)庫,方便了對日志信息的管理,且使用移植性良好的嵌入式數(shù)據(jù)庫,使得上述方案,具有良好的通用性。
對應(yīng)于上述云終端日志處理方法,如圖2所示,本發(fā)明實施例提供一種云終端日志處理裝置,應(yīng)用于服務(wù)器端,包括:
接收模塊110,用于接收與云終端上的模塊相連接的客戶端上傳的日志信息;
參數(shù)獲取模塊120,用于獲取預(yù)先設(shè)定的日志保存配置參數(shù);
存儲模塊130,用于根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
具體的,所述參數(shù)獲取模塊120主要為獲取與所述客戶端共用的共享內(nèi)存中的日志保存配置參數(shù),所述日志保存配置參數(shù)由配置文件映射到所述共享內(nèi)存中。
可選地,所述存儲模塊130包括:
緩存單元,用于將所述日志信息存入緩存隊列;
存儲單元,用于在滿足預(yù)設(shè)條件時,按照所述日志保存配置參數(shù),將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
所述存儲單元的具體應(yīng)用為:當(dāng)所述緩存隊列中緩存的日志信息的條數(shù)達到預(yù)設(shè)值或緩存時間周期到達,且嵌入式數(shù)據(jù)庫處于未存滿的狀態(tài)時,按照所述日志保存配置參數(shù)中預(yù)設(shè)的日志存入速率,將所述緩存隊列中的日志信息存儲至嵌入式數(shù)據(jù)庫中。
可選地,所述云終端日志處理裝置,還包括:
配置命令獲取模塊,用于獲取外部配置命令,所述外部配置命令包含對日志保存配置參數(shù)的配置信息;
保存模塊,用于將所述外部配置命令中包含的所述配置信息存入配置文件;
映射模塊,用于將所述配置文件映射到與所述客戶端共用的共享內(nèi)存中。
可選地,所述云終端日志處理裝置,還包括:
操作命令獲取模塊,用于獲取外部操作命令,所述外部操作命令包括對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除的命令;
操作模塊,用于獲取配置文件中的日志保存配置參數(shù),并依據(jù)所述日志保存配置參數(shù)對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除操作。
對應(yīng)于上述服務(wù)器端,如圖3所示,本發(fā)明實施例提供一種云終端日志處理方法,應(yīng)用于客戶端,包括:
步驟21,建立與云終端上模塊的連接關(guān)系;
步驟22,獲取所述模塊的日志內(nèi)容;
步驟23,根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息;
步驟24,將所述日志信息上傳給服務(wù)器端,使得所述服務(wù)器端將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
可選地,所述步驟21具體為:
通過調(diào)用日志客戶進程接口,建立與所述云終端上模塊的連接關(guān)系。
本發(fā)明實施例的所述步驟23包括:
步驟231,獲取與所述服務(wù)器端共用的共享內(nèi)存中的日志保存配置參數(shù);
步驟232,根據(jù)所述日志保存配置參數(shù)中的模塊級別信息,將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息。
具體地,所述步驟232具體為:
若所述模塊級別信息表明所述模塊生成的日志內(nèi)容需要保存,則將預(yù)設(shè)長度的所述日志內(nèi)容生成標(biāo)準(zhǔn)格式的日志信息。
應(yīng)當(dāng)說明的是,當(dāng)客戶端與云終端上的模塊建立連接關(guān)系后,便開始獲取云終端上模塊在運行時生成的日志內(nèi)容,同時客戶端會讀取共享內(nèi)存中的模塊級別信息,若所述模塊級別信息表明所述日志內(nèi)容需要進行保存,則在獲取的所述日志內(nèi)容中,依次截取預(yù)設(shè)長度的日志內(nèi)容,然后將所述預(yù)設(shè)長度的日志內(nèi)容封裝成標(biāo)準(zhǔn)格式,形成日志信息,本發(fā)明實施例中,所述標(biāo)準(zhǔn)格式的日志信息中包含:日志級別、日志生成時間、所述日志信息對應(yīng)的模塊名以及生成的所述日志內(nèi)容。
在將日志信息上傳給服務(wù)器端時,主要通過socket(套接字)方式實現(xiàn)與服務(wù)器端的通訊。
對應(yīng)于上述方法,如圖4所示,本發(fā)明實施例提供一種云終端日志處理裝置,應(yīng)用于客戶端,包括:
連接模塊210,用于建立與云終端上模塊的連接關(guān)系;
日志獲取模塊220,用于獲取所述模塊的日志內(nèi)容;
生成模塊230,用于根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息;
上傳模塊240,用于將所述日志信息上傳給服務(wù)器端,使得所述服務(wù)器端將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
具體地,所述連接模塊210通過調(diào)用日志客戶進程接口,建立與所述云終端上模塊的連接關(guān)系。
具體地,所述生成模塊230包括:
第一獲取單元231,用于獲取與所述服務(wù)器端共用的共享內(nèi)存中的日志保存配置參數(shù);
生成單元232,用于根據(jù)所述日志保存配置參數(shù)中的模塊級別信息,將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息。
生成單元232具體為:若所述模塊級別信息表明所述模塊生成的日志內(nèi)容需要保存,則將預(yù)設(shè)長度的所述日志內(nèi)容生成標(biāo)準(zhǔn)格式的日志信息。
對應(yīng)于客戶端裝置和服務(wù)器端裝置,本發(fā)明實施例提供一種云終端日志處理系統(tǒng),包括:
云終端第一日志處理裝置和云終端第二日志處理裝置;其中,
所述云終端第一日志處理裝置包括:
連接模塊,用于建立與云終端上模塊的連接關(guān)系;
日志獲取模塊,用于獲取所述模塊的日志內(nèi)容;
生成模塊,用于根據(jù)預(yù)先設(shè)定的日志保存配置參數(shù),將需要保存的所述日志內(nèi)容生成對應(yīng)的日志信息;
上傳模塊,用于將所述日志信息上傳給所述云終端第二日志處理裝置,使得所述云終端第二日志處理裝置將所述日志信息存儲至嵌入式數(shù)據(jù)庫中;
所述云終端第二日志處理裝置包括:
接收模塊,用于接收與云終端上的模塊相連接的所述云終端第一日志處理裝置上傳的日志信息;
參數(shù)獲取模塊,用于獲取預(yù)先設(shè)定的日志保存配置參數(shù);
存儲模塊,用于根據(jù)所述日志保存配置參數(shù),將所述日志信息存儲至嵌入式數(shù)據(jù)庫中。
進一步地,所述云終端第二日志處理裝置還包括:
配置命令獲取模塊,用于獲取外部配置命令,所述外部配置命令包含對日志保存配置參數(shù)的配置信息;
保存模塊,用于將所述外部配置命令中包含的所述配置信息存入配置文件;
映射模塊,用于將所述配置文件映射到與所述云終端第一日志處理裝置共用的共享內(nèi)存中。
進一步地,所述云終端第二日志處理裝置還包括:
操作命令獲取模塊,用于獲取外部操作命令,所述外部操作命令包括對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除的命令;
操作模塊,用于獲取配置文件中的日志保存配置參數(shù),并依據(jù)所述日志保存配置參數(shù)對所述嵌入式數(shù)據(jù)庫中的日志信息進行讀取和/或刪除操作。
應(yīng)當(dāng)說明的是,所述配置命令獲取模塊、所述保存模塊、所述映射模塊、操作命令獲取模塊以及操作模塊構(gòu)成所述云終端日志處理系統(tǒng)的配置模塊,所述配置模塊,主要實現(xiàn)按日志等級、日期、模塊名對數(shù)據(jù)庫中的日志信息進行讀取、刪除操作,以及對數(shù)據(jù)庫的容量、日志寫入速率的配置,所述配置模塊可以與云終端第二日志處理裝置設(shè)置為一體,也可以獨立于所述云終端第二日志處理裝置,構(gòu)成單獨的模塊。
如圖5所示,以配置模塊單獨設(shè)置為例,本發(fā)明所述云終端日志處理系統(tǒng)包括:日志客戶端(對應(yīng)于上述云終端第一日志處理裝置)和日志服務(wù)器端(對應(yīng)于上述云終端第二日志處理裝置),所述日志客戶端調(diào)用日志客戶端接口,通過使用多個日志客戶進程對云終端模塊的日志進行采集,即一個日志客戶進程對應(yīng)一個云終端模塊,在得到云終端模塊的需保存的日志信息后,通過socket向日志服務(wù)器發(fā)送日志信息,日志服務(wù)端在通過收包線程得到所述日志信息后, 先將日志信息按先后順序掛在緩沖區(qū)鏈表上,然后在預(yù)設(shè)條件下,通過數(shù)據(jù)庫插入線程,調(diào)用sql接口事務(wù)插入將日志信息插入到SQLite3數(shù)據(jù)庫中;通過日志配置程序?qū)崿F(xiàn)對SQLite3數(shù)據(jù)庫中的日志信息的讀取和刪除操作,同時日志配置程序(即上述的配置模塊)將對日志保存的配置信息寫入到共享內(nèi)存,供日志客戶端和日志服務(wù)器端調(diào)用。
如圖6所示,所述日志客戶端的主要實現(xiàn)流程為:
步驟S11,客戶進程調(diào)用日志接口建立與云終端上模塊的連接關(guān)系;
步驟S12,讀取共享內(nèi)存中本模塊的級別信息;
步驟S13,根據(jù)所述級別信息判定所述模塊對應(yīng)的日志是否要保存;如果不需要保存則執(zhí)行步驟S15,丟棄該日志;如果需要保存,則執(zhí)行步驟S14,添加日志的時間、模塊名信息組裝成sql標(biāo)準(zhǔn)格式;
步驟S16,將日志信息從socket發(fā)送到日志服務(wù)器端。
如圖7所示,所述日志服務(wù)器端的主要實現(xiàn)流程為:
步驟S21,服務(wù)進程啟動;
步驟S22,將配置文件讀取到共享內(nèi)存;
步驟S23,檢查socket收包;
步驟S24,判斷socket是否接收到日志信息;若沒有收到日志信息,則跳轉(zhuǎn)到步驟S23,若收到日志信息,則執(zhí)行步驟S25,將日志信息保存到緩存列表;
步驟S26,判斷緩存節(jié)點個數(shù)是否大于或等于預(yù)設(shè)值或者時間周期是否到達;若緩存節(jié)點個數(shù)未達到預(yù)設(shè)值或者時間周期未到達,則跳轉(zhuǎn)到步驟S23;若緩存節(jié)點個數(shù)達到預(yù)設(shè)值或者時間周期到達,則進行步驟S27,判斷數(shù)據(jù)庫是否存滿,若數(shù)據(jù)庫未存滿,則進行步驟S28,將所述日志信息按預(yù)設(shè)速率插入數(shù)據(jù)庫,然后跳轉(zhuǎn)到步驟S24;若數(shù)據(jù)庫存滿,則執(zhí)行步驟S29,丟棄該緩存節(jié)點,跳轉(zhuǎn)到步驟S23。
如圖8所示,配置程序的主要處理流程為:
步驟S31,調(diào)用配置程序;
步驟S32,將配置文件讀取到共享內(nèi)存;
步驟S33,進行參數(shù)選擇的判定,若為參數(shù)設(shè)置,則進行步驟S34,設(shè)置模塊的等級、數(shù)據(jù)庫容量值或日志寫入速率值;若為日志讀取,則進行步驟S35, 按模塊、等級、時間從數(shù)據(jù)庫讀取日志;若為日志刪除,則進行步驟S36,按模塊、等級、時間從數(shù)據(jù)庫刪除日志。
應(yīng)當(dāng)說明的是,所述云終端日志處理系統(tǒng)實現(xiàn)了對云終端上的模塊的日志的存儲,通過嵌入式數(shù)據(jù)庫保存預(yù)設(shè)格式的日志信息,方便了對日志信息的讀寫,同時也方便了查詢分析;通過使用共享內(nèi)存的方式對配置文件進行讀寫,由于是內(nèi)存操作,既可以實時向所有進程傳遞配置信息,又不影響各模塊的執(zhí)行效率,提高了云終端日志處理系統(tǒng)的效率,通過將日志信息存入嵌入式數(shù)據(jù)庫,跨平臺兼容性較好,在進行系統(tǒng)移植時只需更換庫文件即可;綜上所述,所述云終端日志處理系統(tǒng)操作方便、易于移植、低資源占用、分析高效,為云終端的日志處理提供了便利。
以上所述的是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出對于本技術(shù)領(lǐng)域的普通人員來說,在不脫離本發(fā)明所述的原理前提下還可以作出若干改進和潤飾,這些改進和潤飾也在本發(fā)明的保護范圍內(nèi)。