專利名稱:日志文件操作系統(tǒng)及日志文件管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及支持將大量數(shù)據(jù)內(nèi)容同時添加到大量文件尾部的文件應(yīng)用系統(tǒng)技術(shù)領(lǐng)域,特別適合在云計算平臺中將大量數(shù)據(jù)寫入日志系統(tǒng)的環(huán)境,具體涉及日志文件操作系統(tǒng)及日志文件管理方法。
背景技術(shù):
在企業(yè)發(fā)展不斷加速的今天,企業(yè)信息化系統(tǒng)(Enterprisesinformatization)、網(wǎng)站應(yīng)用系統(tǒng)等眾多應(yīng)用系統(tǒng)不斷豐富著我們的工作和生活,而這些應(yīng)用平臺的穩(wěn)定、方便和快捷離不開系統(tǒng)文件操作或者日志系統(tǒng)操作的支持,例如該系統(tǒng)可能是事務(wù)日志系統(tǒng),操作日志系統(tǒng)或者是持久化日志系統(tǒng)等等,特別是在云計算管理平臺更離不開這樣的日志操作系統(tǒng)。雖然在行業(yè)中有個別一些日志系統(tǒng)可以實現(xiàn)系統(tǒng)日志的操作,比如Log4j等,但是這樣的日志不具有通用性,比如每個需要使用日志系統(tǒng)的類為了不和別的類沖突就必須定義自己的Log4j配置,每個日志文件單獨存在系統(tǒng)中,這樣又不能統(tǒng)一管理。圖I示出了現(xiàn)有技術(shù)的日志操作系統(tǒng)對日志管理的方法流程圖,從該圖中可以看出,該應(yīng)用系統(tǒng)啟動后直接簡單的生成了文件記錄,而這種文件記錄并沒有經(jīng)過編號、排列的過程,因此在后期的輸出過程中存在著不方便管理的問題,而且上面也提到了這種文件記錄不具有通用性。
發(fā)明內(nèi)容
本發(fā)明提供一種日志文件操作系統(tǒng),能夠?qū)⒋罅繑?shù)據(jù)寫入日志系統(tǒng)的環(huán)境,并對日志文件進行統(tǒng)一管理。本發(fā)明提供一種日志文件操作系統(tǒng),用于接收外部調(diào)用模塊的數(shù)據(jù)內(nèi)容并將該數(shù)據(jù)內(nèi)容生成日志文件以供數(shù)據(jù)內(nèi)容處理模塊讀取,包括
文件寫入池單元,存放多個文件寫單元,用于根據(jù)文件操作管理單元的調(diào)用請求為外部調(diào)用模塊提供文件寫單元;所述文件寫單元用于存放外部調(diào)用模塊寫入的數(shù)據(jù)內(nèi)容并將該數(shù)據(jù)內(nèi)容生成為日志文件;
文件索引單元,用于向文件寫單元中的日志文件提供索引編號;
文件讀取池單元,存放多個文件讀單元,所述文件讀單元用于讀取文件寫單元中的日志文件;
文件合并單元,用于對文件讀單元中的日志文件進行合并操作;
文件配置單元,用于根據(jù)應(yīng)用服務(wù)器性能和/或外部調(diào)用模塊的請求數(shù)量對日志文件存儲信息進行配置;
文件操作管理單元,用于對文件寫入池單元、文件索引單元、文件合并單元、文件讀取池單元及文件配置單元進行管理。優(yōu)選地,本發(fā)明的日志文件操作系統(tǒng)還包括文件異地備份單元,所述文件異地備份單元用于根據(jù)文件操作管理單元的調(diào)用請求向文件寫單元提供異地備份的地址及調(diào)用接口。 優(yōu)選地,所述日志文件存儲信息包括日志文件的文件路徑、文件名稱及名稱數(shù)量。針對上述日志文件操作系統(tǒng),本發(fā)明還提供了一種日志文件管理方法,包括步驟
對系統(tǒng)進行初始化設(shè)置;
文件操作管理單元根據(jù)外部調(diào)用模塊的請求將數(shù)據(jù)內(nèi)容寫入池單元中的文件寫單元提供給外部調(diào)用模塊進行數(shù)據(jù)內(nèi)容寫入操作,并生成日志文件;
判斷系統(tǒng)是否需要讀取日志文件如果是,則由文件讀取池單元中的文件讀單元讀取文件寫單元中的日志文件,并啟動文件合并單元,由文件合并單元對日志文件進行合并操作以供數(shù)據(jù)內(nèi)容管理模塊讀?。蝗绻?,則系統(tǒng)結(jié)束操作。優(yōu)選地,所述對系統(tǒng)進行初始化設(shè)置的步驟之前還包括對系統(tǒng)參數(shù)進行配置。優(yōu)選地,所述對系統(tǒng)進行初始化的步驟包括文件操作管理單元讀取文件配置單元內(nèi)的配置信息;初始化日志文件操作系統(tǒng);判斷操作的日志文件是否存在如果存在,則定位文件指針到文件尾;如果不存在,則創(chuàng)建日志文件。優(yōu)選地,所述初始化日志文件操作系統(tǒng)包括初始化日志文件異地備份地址。優(yōu)選地,所述文件操作管理單元根據(jù)外部調(diào)用模塊的請求將數(shù)據(jù)內(nèi)容寫入池單元中的文件寫單元提供給外部調(diào)用模塊進行數(shù)據(jù)內(nèi)容寫入操作,并生成日志文件的步驟包括
判斷日志文件大小是否已經(jīng)達到文件配置單元中文件大小限制;如果是,則文件操作管理單元通過文件索引單元向文件寫單元提供新的索引編號,文件寫單元重新命名正在操作的日志文件,并創(chuàng)建新的日志文件,然后文件操作管理單元對已經(jīng)換頁的文件寫單元的編號進行登記,執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫單元生成日志文件,并歸還文件寫單元到文件寫入池單元;如果否,則直接執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫入單元生成日志文件,并歸還文件寫單元到文件寫入池單元。優(yōu)選地,所述啟動文件合并單元的步驟之前還包括文件操作管理單元接收文件寫單元發(fā)送的換頁編號并進行登記;判斷登記的換頁編號與當前的日志文件的個數(shù)是否相同;如果是,則啟動文件合并單元;如果否,則暫不啟動文件合并單元,并繼續(xù)執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫單元。優(yōu)選地,所述啟動文件合并單元的步驟包括
判斷合并點文件是否存在;如果是,則打開文件合并點文件,查找最后一條合并點記錄,分析合并點記錄,計算每個日志文件對應(yīng)文件讀單元編號和最后指針位置,然后執(zhí)行初始化文件讀取池單元;如果否,則直接執(zhí)行初始化文件讀取池單元;
初始化文件讀單元并打開文件讀單元對應(yīng)的日志文件;
重新定位每個文件讀單元中文件指針位置為合并點對應(yīng)的文件讀單元對應(yīng)的文件指針位置;
分別讀取日志文件中的下一條數(shù)據(jù)內(nèi)容;
取出文件讀取池單元中第一條數(shù)據(jù)內(nèi)容并由文件讀單元讀取下一條數(shù)據(jù)內(nèi)容;
將讀出的數(shù)據(jù)內(nèi)容以參數(shù)的形式發(fā)送給數(shù)據(jù)內(nèi)容處理單元;
找到傳遞數(shù)據(jù)內(nèi)容給數(shù)據(jù)內(nèi)容處理模塊的文件讀單元,并由該文件讀單元繼續(xù)讀入下一條數(shù)據(jù);
判斷文件讀單元是否還有數(shù)據(jù)可讀;如果是,則返回到分別讀取數(shù)據(jù)日志文件中的下一條數(shù)據(jù)內(nèi)容的步驟;如果否,則記錄下文件讀取池單元中每個文件讀單元的指針位置,將所有文件指針位置組織成合并點記錄并將該合并點記錄寫入到合并點文件中。上述技術(shù)方案可以看出,由于本發(fā)明實施例中日志文件操作系統(tǒng)采用文件寫入池單元、文件讀取池單元、文件索引單元及文件合并單元相結(jié)合由文件操作管理單元進行管控,因此系統(tǒng)可以實現(xiàn)日志文件的高效寫入,統(tǒng)一備份,統(tǒng)一編號,統(tǒng)一存儲,為了方便用戶使用已經(jīng)寫入文件的數(shù)據(jù)內(nèi)容,本系統(tǒng)提供了系統(tǒng)運行過程中向用戶接口提供數(shù)據(jù)內(nèi)容即動態(tài)合并的功能。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
圖I是現(xiàn)有技術(shù)中日志文件管理方法的流程 圖2本發(fā)明實施例I中日志文件操作系統(tǒng)的結(jié)構(gòu)示意 圖3是本發(fā)明實施例2中日志文件管理方法的流程 圖4是本發(fā)明實施例2的日志文件管理方法中對日志文件操作系統(tǒng)進行系統(tǒng)配置的流程 圖5是本發(fā)明實施例2的日志文件管理方法中由文件寫單元寫入日志文件并生成日志文件的流程 圖6是本發(fā)明實施例2的日志文件管理方法中啟動文件合并單元的流程 圖7是本發(fā)明實施例2的日志文件管理方法中文件合并單元合并文件的流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。實施例I : 如圖2所示,本發(fā)明實施例提供一種日志文件操作系統(tǒng),用于接收外部調(diào)用模塊的數(shù)據(jù)內(nèi)容并將該數(shù)據(jù)內(nèi)容生成日志文件以供數(shù)據(jù)內(nèi)容處理模塊讀取,包括
文件寫入池單元,存放多個文件寫單元,用于根據(jù)文件操作管理單元的調(diào)用請求為外部調(diào)用模塊提供文件寫單元;所述文件寫單元用于存放外部調(diào)用模塊寫入的數(shù)據(jù)內(nèi)容并將該數(shù)據(jù)內(nèi)容生成為日志文件;
文件索引單元,用于向文件寫單元中的日志文件提供索引編號;
文件讀取池單元,存放多個文件讀單元,所述文件讀單元用于讀取文件寫單元中的日志文件;
文件合并單元,用于對文件讀單元中的日志文件進行合并操作;
文件配置單元,用于根據(jù)應(yīng)用服務(wù)器性能和/或外部調(diào)用模塊的請求數(shù)量對日志文件存儲信息進行 配置;
文件操作管理單元,用于對日志文件操作系統(tǒng)、文件索引單元、文件合并單元、文件讀取池單元及文件配置單元進行管控。為了提高系統(tǒng)的穩(wěn)定性與安全性,本發(fā)明實施例中的日志文件操作系統(tǒng)還包括文件異地備份單元,所述文件異地備份單元用于根據(jù)文件操作管理單元的調(diào)用請求向文件寫單元提供異地備份的地址及調(diào)用接口,在文件寫單元進行本地寫入用戶的數(shù)據(jù)內(nèi)容后再通過異地備份單元提供的遠程調(diào)用接口以同樣的方式,即通過遠程調(diào)用接口中提供的文件操作管理單元獲取文件寫單元將數(shù)據(jù)內(nèi)容發(fā)送到遠程日志文件系統(tǒng),其中遠程日志文件系統(tǒng)是本發(fā)明實施例中日志文件操作系統(tǒng)的備份系統(tǒng)。具體地,所述日志文件存儲信息包括日志文件的文件路徑、文件名稱及名稱數(shù)量,當然根據(jù)需要日志文件存儲信息還可以增加更多的內(nèi)容信息,如文件大小、文件級別等內(nèi)容,此處不再一一贅述。文件寫入池單元該單元中主要是存放了一定數(shù)量的文件寫單元,具體文件寫單元的數(shù)量由文件操作池配置單元設(shè)定,文件寫入池單元提供了獲取文件寫單元的操作方法和歸還文件寫單元的操作方法;而文件寫單元主要用于將用戶的數(shù)據(jù)內(nèi)容寫入對應(yīng)的目標文件中,即將用戶的數(shù)據(jù)內(nèi)容寫入到文件寫單元中建立的目標文件,并將該目標文件生成日志文件。文件索引單元主要用于根據(jù)不同的操作文件名稱產(chǎn)生下一個文件編號,此處的文件編號即為索引編號,即根據(jù)不同的日志文件名稱產(chǎn)生一個新的索引編號,當文件寫單元中的日志文件發(fā)生換頁時,文件寫單元通過文件操作管理單元向文件索引單元獲取索引編號。文件讀取池單元同樣存放了一定數(shù)量的文件讀單元,具體的文件讀單元的數(shù)量由文件配置單元設(shè)定,文件讀單元則對應(yīng)著文件寫單元,如果用戶需要對日志文件進行讀取,那么則由文件讀單元將文件寫單元中的日志讀取出來,再由數(shù)據(jù)內(nèi)容處理模塊從該文件讀單元獲取日志文件。文件合并單元由文件操作管理單元進行管控,當用戶需要獲取本系統(tǒng)中文件寫入單元中的日志文件時,系統(tǒng)根據(jù)文件操作管理單元所登記的日志文件換頁編號與日志文件數(shù)量的比對結(jié)果,決定是否啟動文件合并單元,啟動文件合并單元能夠使本日志文件操作系統(tǒng)對多頁日志文件進行統(tǒng)一編號和統(tǒng)一管理,需要說明的是,文件合并單元可以將文件索引單元提供索引編號的日志文件進行合并,文件合并單元并不負責對日志文件進行統(tǒng)一編號,統(tǒng)一編號是由文件索引單元負責,統(tǒng)一管理是由文件合并單元在合并完日志文件后統(tǒng)一壓縮為zip文件并命名為文件配置單元中指定的壓縮備份文件名稱,文件合并完成后輸出給用戶提供的數(shù)據(jù)內(nèi)容合并接口,可以理解的是該數(shù)據(jù)內(nèi)容合并接口可以是用戶提供的數(shù)據(jù)內(nèi)容處理模塊中的組成部分。文件配置單元是系統(tǒng)中設(shè)定相關(guān)參數(shù)的重要單元,里面存儲了對系統(tǒng)設(shè)定的參數(shù)數(shù)據(jù),系統(tǒng)在進行數(shù)據(jù)內(nèi)容寫入的過程中,首先會調(diào)取文件配置單元中的參數(shù)數(shù)據(jù),并根據(jù)該參數(shù)數(shù)據(jù)對整個系統(tǒng)進行配置,具體配置的內(nèi)容主要有以下幾項
INIT_SIZE :指定日志文件操作系統(tǒng)在初始化時首先應(yīng)該初始化的文件個數(shù),每個文件將由日志文件操作系統(tǒng)中的每個文件操作對象進行文件讀或?qū)懖僮鳎? STEP_LENGTH :日志文件操作系統(tǒng)在使用中如果發(fā)現(xiàn)現(xiàn)有的文件操作對象已經(jīng)不能滿足外部請求時,將會自動增加STEP_LENGTH個文件寫單元到日志文件操作系統(tǒng)中;準確的說,當日志文件操作系統(tǒng)中的文件寫入池單元中的文件寫入單元個數(shù)為O時,文件操作管理單元會自動生成STEP_LENGTH個文件寫入單元并將這些文件寫入單元放入文件寫入池單元,以供外部調(diào)用模塊使用。MAX_SIZE :指定日志文件操作系統(tǒng)中最大的文件操作對象個數(shù),當日志文件操作系統(tǒng)中文件操作對象個數(shù)達到這個界限時,將不再增加新的文件操作對象到日志文件操作系統(tǒng)中;
L0G_SIZE :在日志文件操作系統(tǒng)中的每個文件操作對象發(fā)現(xiàn)自己操作的文件大小已經(jīng)達到這個限制的時候?qū)?chuàng)建新的文件繼續(xù)操作,并將現(xiàn)有文件另存為具有編號的文件;L0G_PATH :文件操作池中每個文件操作對象操作的日志文件存放路徑;L0G_NAME :文件操作池中每個文件操作對象操作的日志文件名稱;
MERGE_POINT_PATH :合并文件存放路徑;
所謂合并是在外部調(diào)用模塊將數(shù)據(jù)內(nèi)容順序?qū)懭肴罩疚募到y(tǒng)后,可能因為業(yè)務(wù)需要,需要將寫入的內(nèi)容順序讀出到用戶提供的數(shù)據(jù)內(nèi)容接口中,這一過程可能是間歇性進行的,那么對于每次間歇性寫入的內(nèi)容進行整合即為合并,這樣就需要記錄每次合并后的位置,該位置即為合并點。MERGE_POINT_NAME :合并點文件名稱;
MERGE_BACKUP_PATH :合并后文件壓縮備份路徑;
MERGE_BACKUP_NAME :合并后文件壓縮備份的名稱。文件操作管理單元在本系統(tǒng)中具有全局管控的作用,文件操作管理單元對文件寫入池單元、文件索引單元、文件合并單元、文件讀取池單元及文件配置單元進行管控,所謂管控即通過調(diào)用或者命令請求的方式控制各個單元進行相關(guān)的功能動作。本發(fā)明實施例中的文件異地備份單元同樣受文件操作管理單元的管控,當文件寫單元中的日志文件需要備份時,由文件操作管理單元調(diào)用文件異地備份單元,并由文件異地備份單元提供異地備份的地址及調(diào)用接口,實現(xiàn)日志文件的異地備份,保證系統(tǒng)內(nèi)的數(shù)據(jù)更加安全穩(wěn)定。本發(fā)明實施例中,外部調(diào)用模塊和文件處理模塊均有用戶提供,并與本日志文件操作系統(tǒng)相連,進行數(shù)據(jù)傳輸,當用戶需要將數(shù)據(jù)內(nèi)容寫入本系統(tǒng)中的文件寫單元時,首先由用戶提供的外部調(diào)用模塊向本系統(tǒng)的文件操作管理單元發(fā)出寫入請求,通過寫入請求后,外部調(diào)用模塊再將數(shù)據(jù)內(nèi)容寫入到本系統(tǒng)的文件寫單元內(nèi)并生成日志文件,供用戶隨時獲取,而用戶提供的數(shù)據(jù)內(nèi)容處理模塊能夠接收本系統(tǒng)中經(jīng)過文件索引單元統(tǒng)一編號且經(jīng)過合并的日志文件內(nèi)容,方便用戶對日志文件的處理。實施例2
針對上述日志文件操作系統(tǒng),本發(fā)明實施例還提供了一種日志文件管理方法,如圖3所示,包括步驟
101 :對系統(tǒng)參數(shù)進行配置;系統(tǒng)在啟動時首先文件操作管理單元讀取文件配置單元中的配置信息,具體配置信息已于上述實施例I中進行了描述,那么此處不再進行贅述。因此本步驟中需要對系統(tǒng)參數(shù)進行配置,將系統(tǒng)配置參數(shù)存儲于文件配置單元中。102 :對系統(tǒng)進行初始化設(shè)置;
本步驟中對于系統(tǒng)進行初始化設(shè)置主要包括對文件寫入池單元進行初始化設(shè)置,當然就包括了對文件寫入單元的初始化設(shè)置,當然也包括初始化文件異地備份地址,即對異地文件備份單元進行初始化設(shè)置,同時還有對文件操作管理單元、文件合并單元的初始化設(shè)置,初始化文件操作管理單元時首先初始化一個用于登記所有日志文件換頁的索引編號的Map容器(比如Java編程語言中的Map接口中的HashMap類或其他任意實現(xiàn)類),并初始化文件合并單元,具體對文件寫入池單元的初始化設(shè)置內(nèi)容結(jié)合圖4進行詳細介紹。如圖4所示,所述對系統(tǒng)進行初始化的步驟包括
1021 :文件操作管理單元讀取文件配置單元內(nèi)的配置信息;
本步驟中文件配置單元內(nèi)的配置信息即為系統(tǒng)配置參數(shù),可以理解的是,本系統(tǒng)配置參數(shù)可以在系統(tǒng)啟動時進行設(shè)置,也可以在系統(tǒng)啟動之前事先將配置參數(shù)存于文件配置單元內(nèi)。當然,該系統(tǒng)配置參數(shù)還應(yīng)當包括文件配置單元根據(jù)應(yīng)用服務(wù)器性能和/或外部調(diào)用模塊的請求數(shù)量對日志文件進行配置的存儲信息,即根據(jù)服務(wù)器硬盤的存儲空間及響應(yīng)速度等因素和/或根據(jù)向本系統(tǒng)申請數(shù)據(jù)內(nèi)容寫入的外部請求模塊的數(shù)量來對日志文件進行配置的存儲信息,所述日志文件存儲信息包括日志文件的文件路徑、文件名稱及名稱數(shù)量。1022 :初始化文件池單元;文件寫入池單元需要根據(jù)文件操作配置單元中的INIT_SIZE字段初始化文件寫單元,并為每個文件寫單元設(shè)置相應(yīng)的編號,然后將編號以參數(shù)的形式傳入文件寫單元;在初始化文件寫單元時,文件寫單元首先判斷本單元編號對應(yīng)目標操作文件是否存在,如果不存在則創(chuàng)建新的文件,如果目標操作文件存在則重新打開目標文件,并將文件指針定位到目標文件尾部;這樣文件操作管理單元初始化結(jié)束。1023 :判斷操作的日志文件是否存在
如果存在,則執(zhí)行1024 :定位文件指針到文件尾;
如果不存在,則執(zhí)行1025 :創(chuàng)建日志文件。至此完成了對系統(tǒng)初始化的設(shè)置,對于對日志文件異地備份地址的初始化設(shè)置可以與文件池單元的初始化設(shè)置同時進行。103:文件操作管理單元根據(jù)外部調(diào)用模塊的請求將數(shù)據(jù)內(nèi)容寫入池單元中的文件寫單元提供給外部調(diào)用模塊進行數(shù)據(jù)內(nèi)容寫入操作,并生成日志文件;
本步驟中外部調(diào)用模塊會先向文件操作管理單元發(fā)送數(shù)據(jù)內(nèi)容寫入請求,請求通過后,文件操作處理單元會調(diào)用文件寫入池單元中的文件寫單元,外部調(diào)用模塊再將數(shù)據(jù)內(nèi)容寫入到文件寫單元中,對于寫入的具體操作結(jié)合圖5進行詳細描述。如圖5所示,所述文件操作管理單元根據(jù)外部調(diào)用模塊的請求將數(shù)據(jù)內(nèi)容寫入池單元中的文件寫單元提供給外部調(diào)用模塊進行數(shù)據(jù)內(nèi)容寫入操作,并生成日志文件的步驟包括
1031 :判斷日志文件大小是否已經(jīng)達到文件配置單元中文件大小限制;
本步驟中文件配置單元中的文件大小限制是指文件配置單元中對于每個日志文件是否需要換頁的設(shè)置,如果日志文件需要進行換頁則該日志文件則必定超出了文件配置單元中的文件大小限制,則進一步說明日志文件已經(jīng)發(fā)生換頁動作。如果是,則執(zhí)行1032 :文件操作管理 單元通過文件索引單元向文件寫單元提供新的索引編號,重新命名正在操作的日志文件,并創(chuàng)建新的日志文件,然后文件操作管理單元對已經(jīng)換頁的文件寫單元的編號進行登記,并執(zhí)行1033 :將數(shù)據(jù)內(nèi)容寫入到文件寫單元生成日志文件,并歸還文件寫單元到文件寫入池單元;
如果否,則直接執(zhí)行1033 :將數(shù)據(jù)內(nèi)容寫入到文件寫入單元生成日志文件,并歸還文件寫單元到文件寫入池單元。至此,數(shù)據(jù)內(nèi)容寫入操作結(jié)束。104 :判斷系統(tǒng)是否需要讀取日志文件;
本步驟中系統(tǒng)是否需要讀取日志的判斷是由用戶來決定的,如果用戶想要獲取本系統(tǒng)中的日志文件,那么用戶可以通過其數(shù)據(jù)內(nèi)容處理模塊向本系統(tǒng)發(fā)出獲取請求,請求通過后,本系統(tǒng)進入讀取日志文件的步驟中。因此,如果用戶需要獲取日志文件(即系統(tǒng)需要讀取日志),則執(zhí)行105 :由文件讀取池單元中的文件讀單元讀取文件寫單元中的日志文件,并啟動文件合并單元,由文件合并單元對日志文件進行合并操作以供數(shù)據(jù)內(nèi)容管理模塊讀??;如果用戶不需要獲取日志文件,則執(zhí)行106 :系統(tǒng)結(jié)束操作。在步驟105中,日志文件的讀取涉及到合并的動作,對于合并的解釋已經(jīng)在上述實施例I中做出了具體描述,此處不再贅述。本發(fā)明實施例中在所述啟動文件合并單元的步驟之前還包括了一個判斷的步驟,即對于是否啟動文件合并單元的判斷,具體步驟請參見圖6所示
1041:文件操作管理單元接收文件寫單元發(fā)送的日志文件換頁編號并進行登記;
1042:判斷登記的換頁編號與當前的日志文件的個數(shù)是否相同;
如果是,則執(zhí)行1043 :啟動文件合并單元;如果否,則執(zhí)行1044 :暫不啟動文件合并單元,并繼續(xù)執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫單元。那么這一對于是否啟動文件合并單元的判斷步驟的加入可以使整個系統(tǒng)更加有效的運行。對于所述啟動文件合并單元的具體操作步驟請參見圖7所示
1051 :判斷合并點文件是否存在;
如果是,則執(zhí)行1052 :打開文件合并點文件,查找最后一條合并點記錄,分析合并點記錄,計算每個日志文件對應(yīng)文件讀單元編號和最后指針位置,然后執(zhí)行1053 :初始化文件讀取池單元;
如果否,則直接執(zhí)行1053 :初始化文件讀取池單元;
文件讀取池單元初始化完成后執(zhí)行1054 :初始化文件讀單元并打開文件讀單元對應(yīng)的日志文件;
1055 :重新定位每個文件讀單元中文件指針位置為合并點對應(yīng)的文件讀單元對應(yīng)的文件指針位置;
1056 :分別讀取日志文件中的下一條數(shù)據(jù)內(nèi)容;
由于上一步驟1055中將文件指針位置重新定位到了合并點對應(yīng)的文件指針位置,因此在此步驟中會讀取到合并點處日志文件的下一條數(shù)據(jù)內(nèi)容。1057 :取出文件讀取池單元中第一條數(shù)據(jù)內(nèi)容并由文件讀單元讀取下一條數(shù)據(jù)內(nèi)容;此處是一個重復(fù)的動作過程,在取出文件讀取池單元中的第一條數(shù)據(jù)內(nèi)容后,由文件讀單元讀取下一條數(shù)據(jù)內(nèi)容,這時候被讀取的下一條數(shù)據(jù)內(nèi)容就成了讀取池單元中的第一條數(shù)據(jù)內(nèi)容,進而不斷的重復(fù)執(zhí)行,直到讀出所有的數(shù)據(jù)內(nèi)容。1058 :將讀出的數(shù)據(jù)內(nèi)容以參數(shù)的形式發(fā)送給數(shù)據(jù)內(nèi)容處理模塊;
1059:找到傳遞數(shù)據(jù)內(nèi)容給數(shù)據(jù)內(nèi)容處理模塊的文件讀單元,并由該文件讀單元繼續(xù)讀入下一條數(shù)據(jù);
1060:判斷文件讀單元是否還有數(shù)據(jù)可讀;
如果是,則返回1056 :返回到分別讀取數(shù)據(jù)日志文件中的下一條數(shù)據(jù)內(nèi)容的步驟; 如果否,則執(zhí)行1061 :記錄下文件讀取池單元中每個文件讀單元的指針位置,將所有文件指針位置組織成合并點記錄并該合并點記錄寫入到合并點文件中,并將已經(jīng)讀取過的日志文件統(tǒng)一壓縮為zip文件,備份文件名稱和備份文件路徑由文件配置管理單元中的備份文件名稱和備份文件路徑提供。本發(fā)明實施例中所采用的方法將用戶需要寫入的數(shù)據(jù)內(nèi)容由文件索引單元進行分配編號,并生成日志文件,而在對日志文件的讀取過程中有文件合并單元對多頁日志文件進行合并操作,從而實現(xiàn)了對日志文件的統(tǒng)一編號、統(tǒng)一管理和統(tǒng)一備份的目的。需要說明的是,上述模塊和系統(tǒng)內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。本領(lǐng)域普通技術(shù)人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲于計算機可讀存儲介質(zhì)中,存儲介質(zhì)可以包括只讀存儲器(ROM, Read Only Memory)、隨機存取存儲器(RAM, Random AccessMemory )、磁盤或光盤等。以上對本發(fā)明實施例所提供的日志文件操作系統(tǒng)及日志文件管理方法進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.日志文件操作系統(tǒng),用于接收外部調(diào)用模塊的數(shù)據(jù)內(nèi)容并將該數(shù)據(jù)內(nèi)容生成日志文件以供數(shù)據(jù)內(nèi)容處理模塊讀取,其特征在于,包括 文件寫入池單元,存放多個文件寫單元,用于根據(jù)文件操作管理單元的調(diào)用請求為外部調(diào)用模塊提供文件寫單元;所述文件寫單元用于存放外部調(diào)用模塊寫入的數(shù)據(jù)內(nèi)容并將該數(shù)據(jù)內(nèi)容生成為日志文件; 文件索引單元,用于向文件寫單元中的日志文件提供索引編號; 文件讀取池單元,存放多個文件讀單元,所述文件讀單元用于讀取文件寫單元中的日志文件; 文件合并單元,用于對文件讀單元中的日志文件進行合并操作; 文件配置單元,用于根據(jù)應(yīng)用服務(wù)器性能和/或外部調(diào)用模塊的請求數(shù)量對日志文件存儲信息進行配置; 文件操作管理單元,用于對文件寫入池單元、文件索引單元、文件合并單元、文件讀取池單元及文件配置單元進行管理。
2.如權(quán)利要求I所述的日志文件操作系統(tǒng),其特征在于還包括文件異地備份單元,所述文件異地備份單元用于根據(jù)文件操作管理單元的調(diào)用請求向文件寫單元提供異地備份的地址及調(diào)用接口。
3.如權(quán)利要求I或2所述的日志文件操作系統(tǒng),其特征在于所述日志文件存儲信息包括日志文件的文件路徑、文件名稱及名稱數(shù)量。
4.日志文件管理方法,其特征在于,包括步驟 對系統(tǒng)進行初始化設(shè)置; 文件操作管理單元根據(jù)外部調(diào)用模塊的請求將數(shù)據(jù)內(nèi)容寫入池單元中的文件寫單元提供給外部調(diào)用模塊進行數(shù)據(jù)內(nèi)容寫入操作,并生成日志文件; 判斷系統(tǒng)是否需要讀取日志文件如果是,則由文件讀取池單元中的文件讀單元讀取文件寫單元中的日志文件,并啟動文件合并單元,由文件合并單元對日志文件進行合并操作以供數(shù)據(jù)內(nèi)容管理模塊讀取;如果否,則系統(tǒng)結(jié)束操作。
5.如權(quán)利要求4所述的日志文件管理方法,其特征在于,所述對系統(tǒng)進行初始化設(shè)置的步驟之前還包括 對系統(tǒng)參數(shù)進行配置。
6.如權(quán)利要求4或5所述的日志文件管理方法,其特征在于,所述對系統(tǒng)進行初始化的步驟包括 文件操作管理單元讀取文件配置單元內(nèi)的配置信息; 初始化日志文件操作系統(tǒng); 判斷操作的日志文件是否存在;如果存在,則定位文件指針到文件尾;如果不存在,則創(chuàng)建日志文件。
7.如權(quán)利要求4或5所述的日志文件管理方法,其特征在于所述對系統(tǒng)進行初始化設(shè)置包括初始化日志文件異地備份地址。
8.如權(quán)利要求4或5所述的日志文件管理方法,其特征在于,所述文件操作管理單元根據(jù)外部調(diào)用模塊的請求將數(shù)據(jù)內(nèi)容寫入池單元中的文件寫單元提供給外部調(diào)用模塊進行數(shù)據(jù)內(nèi)容寫入操作,并生成日志文件的步驟包括判斷日志文件大小是否已經(jīng)達到文件配置單元中文件大小限制;如果是,則文件操作管理單元通過文件索弓I單元向文件寫單元提供新的索引編號,重新命名正在操作的日志文件,并創(chuàng)建新的日志文件,然后文件操作管理單元對已經(jīng)換頁的文件寫單元的編號進行登記,執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫單元生成日志文件,并歸還文件寫單元到文件寫入池單元;如果否,則直接執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫入單元生成日志文件,并歸還文件寫單元到文件寫入池單元。
9.如權(quán)利要求4或5所述的日志文件管理方法,其特征在于,所述啟動文件合并單元的步驟之前還包括 文件操作管理單元接收文件寫單元發(fā)送的日志文件換頁編號并進行登記; 判斷登記的換頁編號與當前的日志文件的個數(shù)是否相同;如果是,則啟動文件合并單元;如果否,則暫不啟動文件合并單元,并繼續(xù)執(zhí)行將數(shù)據(jù)內(nèi)容寫入到文件寫單元。
10.如權(quán)利要求4或5所述的日志文件管理方法,其特征在于,所述啟動文件合并單元的步驟包括 判斷合并點文件是否存在;如果是,則打開文件合并點文件,查找最后一條合并點記錄,分析合并點記錄,計算每個日志文件對應(yīng)文件讀單元編號和最后指針位置,然后執(zhí)行初始化文件讀取池單元;如果否,則直接執(zhí)行初始化文件讀取池單元; 初始化文件讀單元并打開文件讀單元對應(yīng)的日志文件; 重新定位每個文件讀單元中文件指針位置為合并點對應(yīng)的文件讀單元對應(yīng)的文件指針位置; 分別讀取日志文件中的下一條數(shù)據(jù)內(nèi)容; 取出文件讀取池單元中第一條數(shù)據(jù)內(nèi)容并由文件讀單元讀取下一條數(shù)據(jù)內(nèi)容; 將讀出的數(shù)據(jù)內(nèi)容以參數(shù)的形式發(fā)送給數(shù)據(jù)內(nèi)容處理模塊; 找到傳遞數(shù)據(jù)內(nèi)容給數(shù)據(jù)內(nèi)容處理模塊的文件讀單元,并由該文件讀單元繼續(xù)讀入下一條數(shù)據(jù); 判斷文件讀單元是否還有數(shù)據(jù)可讀;如果是,則返回到分別讀取數(shù)據(jù)日志文件中的下一條數(shù)據(jù)內(nèi)容的步驟;如果否,則記錄下文件讀取池單元中每個文件讀單元的指針位置,將所有文件指針位置組織成合并點記錄并將該合并點記錄寫入到合并點文件中。
全文摘要
本發(fā)明公開了一種日志文件操作系統(tǒng),包括文件寫入池單元,存放多個文件寫單元,文件索引單元,文件讀取池單元,存放多個文件讀單元,文件合并單元,文件配置單元,文件操作管理單元;文件操作管理單元用于對文件寫入池單元、文件索引單元、文件合并單元、文件讀取池單元及文件配置單元進行管理。針對上述日志文件操作系統(tǒng)本發(fā)明還提供了一種日志文件管理方法,通過對文件寫單元生成日志文件,在用戶需要獲取日志文件時,由文件讀單元讀取該日志文件,并經(jīng)文件合并單元進行合并操作,因此本發(fā)明中的系統(tǒng)及方法能夠?qū)崿F(xiàn)日志文件的高效寫入,統(tǒng)一備份,統(tǒng)一編號,統(tǒng)一存儲。
文檔編號G06F17/30GK102622407SQ201210020239
公開日2012年8月1日 申請日期2012年1月29日 優(yōu)先權(quán)日2012年1月29日
發(fā)明者葉耀榮, 賈玉海 申請人:廣州亦云信息技術(shù)有限公司