欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

日志系統(tǒng)和日志記錄方法與流程

文檔序號(hào):11829871閱讀:271來(lái)源:國(guó)知局
本發(fā)明涉及日志系統(tǒng)和日志記錄方法。
背景技術(shù)
::服務(wù)器記錄日志的通常方法通常是:實(shí)現(xiàn)一個(gè)日志記錄函數(shù),可以把日志內(nèi)容記錄到指定的硬盤(pán)文件中;如果要想把不同的日志記錄到不同的硬盤(pán)文件中,則需要實(shí)現(xiàn)多個(gè)類(lèi)似的日志記錄函數(shù);如果想把日志記錄到數(shù)據(jù)庫(kù)等存儲(chǔ)媒介上,需要再實(shí)現(xiàn)新的日志記錄函數(shù)?;蛘?,只實(shí)現(xiàn)一個(gè)日志記錄函數(shù),而這個(gè)日志記錄函數(shù)中增加一個(gè)參數(shù),用于標(biāo)記日志類(lèi)別,然后日志記錄函數(shù)根據(jù)這個(gè)參數(shù),把日志記錄到不同的硬盤(pán)文件中。其實(shí),日志還會(huì)分緩存記錄或立即記錄,因?yàn)楦饔袃?yōu)缺點(diǎn),所以通常會(huì)實(shí)現(xiàn)兩套日志記錄函數(shù)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明在一個(gè)方面提供一種日志系統(tǒng),包括:日志系統(tǒng)接口,日志記錄模塊,其中所述日志記錄模塊用于根據(jù)日志系統(tǒng)接口的通知記錄日志,日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表,其中,所述日志系統(tǒng)接口根據(jù)日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表確定要通知的記錄日志模塊。本發(fā)明在另一個(gè)方面提供一種日志記錄方法,包括:根據(jù)記錄日志接口通知的日志種類(lèi)標(biāo)識(shí),從日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表查找與該日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)的日志記錄模塊ID,將與該日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)的日志記錄模塊ID通知記錄日志接口,由所述記錄日志接口根據(jù)接收到的日志記錄模塊ID,通知與該日志記錄模塊ID對(duì)應(yīng)的日志記錄模塊,由所述日志記錄模塊,記錄日志。本發(fā)明在又一個(gè)方面提供一種日志系統(tǒng)變更方法,所述日志系統(tǒng)包括配置文件、日志記錄模塊生成器、日志記錄模塊和日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表,所述配置文件包括第一部分和第二部分,所述第一部分包括關(guān)于日志記錄模塊ID、日志記錄模塊的種類(lèi)、及配置的信息,所述第二部分包括關(guān)于日志種類(lèi)標(biāo)識(shí)和日志記錄模塊ID的信息,所述方法包括:日志記錄模塊生成器檢查所述配置文件是否發(fā)生了改變,如果所述配置文件發(fā)生了改變,日志記錄模塊生成器判斷是配置文件的第一部分還是第二部分發(fā)生了改變,如果日志記錄模塊生成器確定第一部分發(fā)生了改變,日志記錄模塊生成器根據(jù)第一部分的變化修改日志記錄模塊,如果日志記錄模塊生成器確定第二部分發(fā)生了改變,日志記錄模塊生成器根據(jù)第二部分的變化修改日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。本發(fā)明在另一個(gè)方面提供一種日志系統(tǒng)的初始化方法,所述日志系統(tǒng)包括配置文件、日志記錄模塊生成器,所述配置文件包括第一部分和第二部分,所述第一部分包括關(guān)于日志記錄模塊ID、日志記錄模塊的種類(lèi)、及配置的信息,所述第二部分包括關(guān)于日志種類(lèi)標(biāo)識(shí)和日志記錄模塊ID的信息,所述方法包括:日志記錄模塊生成器讀取配置文件,日志記錄模塊生成器根據(jù)配置文件第一部分生成日志記錄模塊,日志記錄模塊生成器根據(jù)配置文件第二部生成日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表,其中如果日志記錄模塊生成器根據(jù)配置文件確定存在一個(gè)日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)于多個(gè)日志記錄模塊ID的情形,則日志記錄模塊生成器確定生成復(fù)合日志記錄模塊。根據(jù)常規(guī)的技術(shù),如果想修改日志存儲(chǔ)的硬盤(pán)文件名稱(chēng)的話,必須修改服務(wù)器的源代碼,還需要重新編譯等,比較麻煩。同時(shí),如果想把某種日志由記錄硬盤(pán)文件,改為記錄到數(shù)據(jù)庫(kù)里的話,還需 要修改大量的日志記錄部分,因?yàn)樗麄兪褂玫氖遣煌娜罩居涗浐瘮?shù)。本發(fā)明則是引入了日志記錄模塊,類(lèi)似于現(xiàn)有技術(shù)中的日志記錄函數(shù);同時(shí),本發(fā)明引入了日志記錄模塊生成器,結(jié)合配置文件和配置文件的動(dòng)態(tài)加載,可以靈活的配置,不需要修改源代碼,也不需要重啟服務(wù)器,就可以實(shí)現(xiàn)對(duì)日志記錄方式的修改。另外,根據(jù)常規(guī)的技術(shù),如果發(fā)生異常,服務(wù)器(尤其是游戲服務(wù)器)短時(shí)間會(huì)記錄海量日志時(shí),導(dǎo)致硬盤(pán)滿(mǎn)無(wú)法記錄包括重要日志在內(nèi)的所有日志,導(dǎo)致重要日志丟失;并且引起服務(wù)器性能大幅下降。服務(wù)器性能下降通常會(huì)造成不好的用戶(hù)體驗(yàn)。例如,游戲服務(wù)器性能下降時(shí)會(huì)嚴(yán)重影響游戲參與者的游戲體驗(yàn)。本發(fā)明只需要修改配置文件,把發(fā)生異常的日志改為由空日志記錄模塊記錄,也就是不記錄發(fā)生異常的日志,則不會(huì)導(dǎo)致重要日志丟失,也不會(huì)影響游戲體驗(yàn)。此外,根據(jù)常規(guī)的技術(shù),如果想把同一條日志內(nèi)容,同時(shí)記錄到兩個(gè)或多個(gè)存儲(chǔ)媒介上,則需要在記錄日志部分,修改源代碼,比較繁瑣。而本發(fā)明,可以只需要修改一下配置文件,就能把一條日志同時(shí)記錄在多個(gè)存儲(chǔ)媒介上。因此,本發(fā)明的技術(shù)可以具有以下優(yōu)點(diǎn):(1)可以靈活配置按需對(duì)不同種類(lèi)的日志內(nèi)容,保存到不同的存儲(chǔ)媒介上;(2)可以同時(shí)把同一種日志內(nèi)容,保存到多種存儲(chǔ)媒介上;(3)可以緊急停止記錄某一種或多種日志內(nèi)容;(4)在實(shí)現(xiàn)靈活配置,按需保存日志內(nèi)容的同時(shí),不用修改任何記錄日志內(nèi)容的代碼。附圖說(shuō)明從下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式的描述中可以更好地理解本發(fā)明,其中:圖1示出根據(jù)本發(fā)明示例實(shí)施例的日志系統(tǒng)的框圖;圖2示出根據(jù)本發(fā)明示例實(shí)施例的日志系統(tǒng)的初始化流程圖;圖3示出根據(jù)本發(fā)明示例實(shí)施例由日志記錄模塊生成器執(zhí)行的變更操作流程圖;圖4示出根據(jù)本發(fā)明示例實(shí)施例進(jìn)行日志記錄操作的流程圖;圖5示出了根據(jù)本發(fā)明的示例實(shí)施例的計(jì)算裝置的框圖。具體實(shí)施方式下面將詳細(xì)描述本發(fā)明各個(gè)方面的特征和示例性實(shí)施例。下面的描述涵蓋了許多具體細(xì)節(jié),以便提供對(duì)本發(fā)明的全面理解。但是,對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)顯而易見(jiàn)的是,本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下實(shí)施。下面對(duì)實(shí)施例的描述僅僅是為了通過(guò)示出本發(fā)明的示例來(lái)提供對(duì)本發(fā)明更清楚的理解。本發(fā)明絕不限于下面所提出的任何具體配置,而是在不脫離本發(fā)明的精神的前提下覆蓋了相關(guān)元素或部件的任何修改、替換和改進(jìn)。服務(wù)器通常都要記錄日志,例如游戲服務(wù)器記錄的日志包括重要日志如虛擬貨幣日志和虛擬道具日志,也包括不太重要的游戲參與者普通行為日志,比如游戲參與者使用的技能日志等。因?yàn)槿罩绢?lèi)型眾多,并且有大量日志是和游戲參與者的游戲行為相關(guān)的,所以不能保證日志記錄時(shí)不發(fā)生異常,而本發(fā)明可以靈活處理這樣的異常。另外,有些服務(wù)器可能已經(jīng)運(yùn)營(yíng)了很多年,隨著技術(shù)的進(jìn)步和需要的改變,日志的存儲(chǔ)媒介也可能會(huì)改變,而本發(fā)明只需要提供相應(yīng)存儲(chǔ)媒介的日志記錄模塊及修改配置就能輕松解決問(wèn)題,實(shí)現(xiàn)服務(wù)器日志的靈活記錄。根據(jù)本發(fā)明所提出的技術(shù)方案可以用于游戲服務(wù)器正常的日志記錄。可以按需配置日志記錄方式,比如在啟動(dòng)服務(wù)器時(shí),讀取配置文件,對(duì)不同的日志種類(lèi),生成不同的日志記錄模塊??梢跃o急修改日志記錄方式,比如服務(wù)器受到攻擊(會(huì)產(chǎn)生大量意義較小的日志內(nèi)容),可在服務(wù)器出現(xiàn)故障(例如硬盤(pán)故障)時(shí),把日志記錄到其它存儲(chǔ)媒介上,或者修改現(xiàn)有的日志記錄模塊,保證高優(yōu)先級(jí)日志內(nèi)容能記錄下來(lái)。本發(fā)明所提出的技術(shù)方案不限定在游戲服務(wù)器上,也可以應(yīng)該在其它任何需要記錄日志的裝置或程序上。本發(fā)明的技術(shù)方案可以用于程序調(diào)試,假如程序出現(xiàn)較難捕 獲的錯(cuò)誤,則可以在程序中的各個(gè)懷疑點(diǎn)上加上大量的調(diào)試日志,然后運(yùn)行程序,直到再次出現(xiàn)錯(cuò)誤,然后分析日志就可以解決問(wèn)題。因?yàn)榭梢园葱枧渲茫诓恍枰@些調(diào)試日志的時(shí)候,只要修改一下配置文件,就可以不再記錄這些調(diào)試日志內(nèi)容,而不用刪除先前增加的大量調(diào)試日志。下面結(jié)合附圖詳細(xì)描述本發(fā)明的實(shí)施例。圖1示出根據(jù)本發(fā)明示例實(shí)施例的日志系統(tǒng)。如圖1所示,根據(jù)本發(fā)明示例實(shí)施例的日志系統(tǒng)包括:配置文件180、日志記錄模塊160、日志記錄模塊生成器140和日志系統(tǒng)接口120。要說(shuō)明的是,雖然圖1的實(shí)施例中,配置文件180示出為日志系統(tǒng)的一部分,本領(lǐng)域的技術(shù)人員可以理解,配置文件可以在日志系統(tǒng)外部,只要日志記錄模塊生成器140能夠讀取配置文件180即可。日志系統(tǒng)接口120用于向服務(wù)器的日志記錄部分提供統(tǒng)一的接口,避免日志記錄部分經(jīng)常改動(dòng)。根據(jù)本發(fā)明示例實(shí)施例,作為統(tǒng)一接口的日志系統(tǒng)接口例如可以包括用于記錄日志的接口、變更接口和初始化接口等。當(dāng)服務(wù)器要記錄日志時(shí),日志系統(tǒng)接口120會(huì)向日志記錄模塊生成器140請(qǐng)求日志記錄模塊,并根據(jù)日志記錄模塊生成器的返回,通知相應(yīng)的日志記錄模塊記錄日志。服務(wù)器會(huì)定時(shí)調(diào)用日志系統(tǒng)的變更接口,以定時(shí)檢測(cè)配置文件是否有變化。如果有變化,日志記錄模塊生成器會(huì)讀取變化了的配置文件,修改日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表和/或日志記錄模塊。初始化接口在服務(wù)器啟動(dòng)時(shí)調(diào)用來(lái)初始化日志系統(tǒng)。日志記錄模塊生成器140包含配置文件分析單元,配置文件分析單元讀取并解析配置文件180。根據(jù)解析結(jié)果,日志記錄模塊生成器140生成日志記錄模塊160和日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。日志記錄模塊生成器140不止生成日志記錄模塊和日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表,還負(fù)責(zé)對(duì)它們進(jìn)行維護(hù)。當(dāng)日志記錄模塊生成器140接收到日志系統(tǒng)接口120對(duì)日志記錄模塊的請(qǐng)求后會(huì)查找日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表,并根據(jù)日志種類(lèi)標(biāo)識(shí),返回對(duì)應(yīng)的日志記錄模塊給日志系統(tǒng)接口120。根據(jù)本發(fā)明示例實(shí)施例,配置文件180例如可以包括下述兩部分的內(nèi)容:1)日志記錄模塊ID(即日志記錄模塊名稱(chēng))、日志記錄模塊的種類(lèi)、及配置;和2)日志種類(lèi)標(biāo)識(shí)和日志記錄模塊ID(一個(gè)日志種類(lèi)標(biāo)識(shí)可以對(duì)應(yīng)于多個(gè)日志記錄模塊ID)。為了便于說(shuō)明,表1給出配置文件的第一部分內(nèi)容的示例:日志記錄模塊ID種類(lèi)配置硬盤(pán)重要日志硬盤(pán)文件日志記錄模塊money.log數(shù)據(jù)庫(kù)重要日志數(shù)據(jù)庫(kù)日志記錄模塊dbtable_money普通日志硬盤(pán)文件日志記錄模塊normal.log表1表1第一列是“日志記錄模塊ID”(即名稱(chēng))字段。表1的示例中日志記錄模塊ID包括“硬盤(pán)重要日志”、“數(shù)據(jù)庫(kù)重要日志”和“普通日志”。本領(lǐng)域的技術(shù)人員可以理解,日志記錄模塊ID例如也可以由數(shù)字和/或字母代碼表示。表1第二列是與第一列對(duì)應(yīng)的“種類(lèi)”(type)字段,例如,“硬盤(pán)文件日志記錄模塊”和“數(shù)據(jù)庫(kù)日志記錄模塊”。表1中的第三列是“配置”(Config)字段,用于配置日志記錄模塊進(jìn)行存儲(chǔ)的存儲(chǔ)路徑。例如,“硬盤(pán)文件日志記錄模塊”需要硬盤(pán)文件名稱(chēng),這個(gè)例子中是“money.log”和“normal.log”。例如數(shù)據(jù)庫(kù)日志記錄模塊也需要數(shù)據(jù)表名稱(chēng),這個(gè)例子中就是“dbtable_money”。表2給出配置文件的第二部分內(nèi)容的示例:日志種類(lèi)標(biāo)識(shí)日志記錄模塊ID日志記錄模塊ID虛擬貨幣日志硬盤(pán)重要日志數(shù)據(jù)庫(kù)重要日志玩家行為日志普通日志表2表2第一列是“日志種類(lèi)標(biāo)識(shí)”字段,表2的示例中包括兩種日志種類(lèi)“虛擬貨幣日志”和“玩家行為日志”。本領(lǐng)域的技術(shù)人員可以理解,日志種類(lèi)標(biāo)識(shí)例如也可以由數(shù)字和/或字母代碼表示。表2的其它的列是與“日志種類(lèi)標(biāo)識(shí)”對(duì)應(yīng)的“日志記錄模塊ID”字段。雖然表2中僅給出了兩列日志記錄模塊ID,本領(lǐng)域的技術(shù)人員可以理解可以包括更多列的日志記錄模塊ID,也就是說(shuō)本發(fā)明中的每個(gè)日志種類(lèi)標(biāo)識(shí)可以對(duì)應(yīng)于一個(gè)或多個(gè)日志記錄模塊ID。在表2的例子中,“虛擬貨幣日志”對(duì)應(yīng)于“硬盤(pán)重要日志”和“數(shù)據(jù)庫(kù)重要日志”兩個(gè)日志記錄模塊ID;玩家行為日志對(duì)應(yīng)于“普通日志”一個(gè)日志記錄模塊ID。日志記錄模塊生成器140主要根據(jù)第一部分生成日志記錄模塊,日志記錄模塊生成器140主要根據(jù)第二部分生成日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。根據(jù)本發(fā)明的一個(gè)示例,生成的日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表位于日志記錄模塊生成器140中。日志記錄模塊160,類(lèi)似于現(xiàn)有技術(shù)中的日志記錄函數(shù)。日志記錄模塊的種類(lèi),例如可以包括:1)硬盤(pán)文件日志記錄模塊,用于向指定的硬盤(pán)文件中記錄日志內(nèi)容;2)網(wǎng)絡(luò)日志記錄模塊,用于向日志存儲(chǔ)服務(wù)器發(fā)送日志內(nèi)容;3)數(shù)據(jù)庫(kù)日志記錄模塊,用于向數(shù)據(jù)庫(kù)中記錄日志內(nèi)容;4)空的日志記錄模塊,用于丟棄日志內(nèi)容;和/或5)復(fù)合日志記錄模塊,用于對(duì)同一條日志內(nèi)容采用多種記錄方案,比如向硬盤(pán)文件記錄日志內(nèi)容的同時(shí),也向日志存儲(chǔ)服務(wù)器發(fā)送日志內(nèi)容,或者用于同時(shí)向多個(gè)硬盤(pán)文件中記錄同一條日志內(nèi)容。本領(lǐng)域的技術(shù)人員可以理解,根據(jù)具體需求,還可以包括其它種類(lèi)日志記錄模塊。根據(jù)本發(fā)明的示例實(shí)施例,這些日志記錄模塊種類(lèi)繼承于同一基類(lèi)。在記錄日志時(shí),服務(wù)器會(huì)傳入日志種類(lèi)標(biāo)識(shí),就可以根據(jù)日志種類(lèi)標(biāo)識(shí),找到相應(yīng)的日志記錄模塊,然后使用這個(gè)日志記錄模塊記錄日志。也就是,假如記錄虛擬貨幣日志,會(huì)傳人日志種類(lèi)標(biāo)識(shí)“虛擬貨幣日志”,然后發(fā)現(xiàn)這個(gè)日志種類(lèi)標(biāo)識(shí),對(duì)應(yīng)了兩個(gè)日志記錄模塊“硬盤(pán)重要日志”和“數(shù)據(jù)庫(kù)重要日志”。然后這兩個(gè)日志記錄模塊分別記錄日志到 money.log和dbtable_money中。圖2是根據(jù)本發(fā)明示例實(shí)施例的日志系統(tǒng)的初始化流程圖。在啟動(dòng)服務(wù)器(例如游戲服務(wù)器)時(shí),就要初始化日志系統(tǒng)。初始化包括根據(jù)配置文件生成日志記錄模塊及生成日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。如圖2所示,首先在步驟203日志記錄模塊生成器會(huì)讀取配置文件。在步驟205日志記錄模塊生成器會(huì)根據(jù)配置文件生成日志記錄模塊,然后在步驟207日志記錄模塊生成器會(huì)根據(jù)配置文件生成日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。需要說(shuō)明的是,本發(fā)明并不限制步驟205和207的順序,也就是說(shuō),步驟205可以在步驟207之前進(jìn)行,或者步驟207可以在步驟205之前進(jìn)行,或者二者可以并行進(jìn)行。如果生成日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表時(shí),發(fā)現(xiàn)一個(gè)日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)于多個(gè)日志記錄模塊ID,則日志記錄模塊生成器確定需要生成復(fù)合日志記錄模塊。例如,在表2的示例中,“虛擬貨幣日志”要記錄到兩個(gè)地方,則需要配置兩個(gè)日志記錄模塊ID(分別是“硬盤(pán)重要日志”和“數(shù)據(jù)庫(kù)重要日志”),這兩個(gè)日志記錄模塊ID分別對(duì)應(yīng)一個(gè)記錄到“money.log”中的“硬盤(pán)文件日志記錄模塊”和一個(gè)記錄到“dbtable_money”中的“數(shù)據(jù)庫(kù)日志記錄模塊”。由于這個(gè)例子中,“虛擬貨幣日志”涉及兩個(gè)日志記錄模塊,則需要一個(gè)新的日志記錄模塊(即“復(fù)合日志記錄模塊”),把這兩個(gè)日志記錄模塊包括進(jìn)來(lái)。根據(jù)本發(fā)明的示例實(shí)施例,日志記錄模塊生成器在生成日志記錄模塊時(shí),還會(huì)生成一個(gè)空的日志記錄模塊,用于會(huì)丟棄日志內(nèi)容。另外,根據(jù)本發(fā)明的示例實(shí)施例,服務(wù)器(例如游戲服務(wù)器)每間隔一定時(shí)間,調(diào)用一次日志系統(tǒng)的變更接口,日志系統(tǒng)的變更接口會(huì)通知日志記錄模塊生成器執(zhí)行變更流程。圖3示出根據(jù)本發(fā)明示例實(shí)施例由日志記錄模塊生成器執(zhí)行的變更操作流程圖。如圖3所示,變更流程在步驟301開(kāi)始。在步驟302日志記錄模塊生成器檢查配置文件180(見(jiàn)圖1)是否有變化,如果配置文件沒(méi)有變化,變更流程結(jié)束,以避免消耗服務(wù)器性能。如果在步驟302,日志記錄模塊生成器確定配置文件有了變化,則變更流程前進(jìn)到步驟303。在步驟303,日志記錄模塊生成器判斷是否是日志配置文件的第一部分中的日志記錄模塊ID、日志記錄模塊的種類(lèi)和/或配置有了變化。如果日志記錄模塊生成器確定第一部分中的日志記錄模塊ID、日志記錄模塊的種類(lèi)和/或配置有變化,變更流程前進(jìn)到步驟304,日志記錄模塊生成器根據(jù)改變了的配置文件維護(hù)(例如修改)日志記錄模塊。如果日志記錄模塊生成器確定第一部分中的日志記錄模塊ID、日志記錄模塊的種類(lèi)和配置沒(méi)有變化,變更流程前進(jìn)到步驟305。在步驟305日志記錄模塊生成器判斷是否是日志配置文件的第二部分中的日志種類(lèi)標(biāo)識(shí)和/或日志記錄模塊ID有了變化。如果日志記錄模塊生成器確定第二部分中的日志種類(lèi)標(biāo)識(shí)和/或日志記錄模塊ID有變化,變更流程前進(jìn)到步驟306。在步驟306,日志記錄模塊生成器根據(jù)改變了的配置文件維護(hù)(例如修改)日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。變更流程在步驟307結(jié)束。根據(jù)本發(fā)明,當(dāng)有異常發(fā)生,需要變更日志記錄方式時(shí),可以修改配置文件,例如,可以由操作人員直接修改配置文件。這樣到下次服務(wù)器調(diào)用日志系統(tǒng)的變更接口時(shí),變更接口會(huì)通知日志記錄模塊生成器執(zhí)行如圖3所示的變更流程,從而能夠根據(jù)最新的配置文件變更日志的記錄方式。例如,如果需要把某日志同時(shí)還記錄在不同的存儲(chǔ)媒介或同一存儲(chǔ)媒介的不同文件中(例如不同的硬盤(pán)文件中)時(shí),可以修改配置文件。首先根據(jù)需要在配置文件的第一部分增加日志記錄模塊ID、日志記錄模塊的種類(lèi)、及配置的內(nèi)容,然后修改配置文件的第二部,增加日志種類(lèi)標(biāo)識(shí)所對(duì)應(yīng)的日志記錄模塊ID。此外,根據(jù)本發(fā)明的示例實(shí)施例,在記錄日志時(shí),服務(wù)器會(huì)調(diào)用日志系統(tǒng)接口中的記錄日志接口,并向記錄日志接口傳送日志種類(lèi)標(biāo)識(shí)及日志內(nèi)容。記錄日志接口向日志記錄模塊生成器發(fā)送對(duì)日志記錄模塊的請(qǐng)求。日志記錄模塊生成器會(huì)執(zhí)行例如如圖4所示的日志記錄流程,然后將相應(yīng)的日志記錄模塊返回給記錄日志接口。如圖4所述,日志記錄流程在步驟402開(kāi)始。在步驟404,日志記錄 模塊生成器根據(jù)日志種類(lèi)標(biāo)識(shí),查找日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表。如果在該表中沒(méi)有找到相關(guān)內(nèi)容(例如,表中不存在與日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)的日志記錄模塊ID,或者不存在該日志種類(lèi)標(biāo)識(shí))則轉(zhuǎn)到步驟408,該流程結(jié)束。如果在步驟404找到與該日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)的日志記錄模塊ID,則日志記錄流程前進(jìn)到步驟406,日志記錄模塊生成器將該日志種類(lèi)標(biāo)識(shí)對(duì)應(yīng)的“日志記錄模塊ID”通知記錄日志接口,記錄日志接口根據(jù)接收到的“日志記錄模塊ID”,通知對(duì)應(yīng)的日志記錄模塊,執(zhí)行日志的寫(xiě)操作(例如通過(guò)調(diào)用寫(xiě)日志函數(shù))。例如,硬盤(pán)文件日志記錄模塊會(huì)把日志內(nèi)容記錄到硬盤(pán)文件中,而空的日志記錄模塊會(huì)丟棄日志內(nèi)容。根據(jù)本發(fā)明的一些示例實(shí)施例,在配置文件中(或者日志記錄模塊生成器中)對(duì)日志種類(lèi)進(jìn)行分級(jí)。例如,可以在配置文件的“配置”字段設(shè)置日志的等級(jí)??梢栽诋惓0l(fā)生時(shí),自動(dòng)采取相應(yīng)的策略,例如,停止記錄低優(yōu)先級(jí)的日志種類(lèi),以確保高優(yōu)先級(jí)的重要日志能完整記錄。避免運(yùn)營(yíng)人員監(jiān)控不及時(shí)造成不必要的損失。根據(jù)本發(fā)明的一些示例實(shí)施例,日志系統(tǒng)中,還可以包括異常監(jiān)控模塊。異常監(jiān)控模塊發(fā)現(xiàn)異常時(shí),可以修改配置文件,把發(fā)生異常的日志改為由空日志記錄模塊記錄,也就是不記錄發(fā)生異常的日志。在一示例中,異常監(jiān)控模塊例如可以包括日志流量監(jiān)控系統(tǒng)。如果日志流量監(jiān)控系統(tǒng)發(fā)現(xiàn)某種日志種類(lèi),在短時(shí)間內(nèi)有大量的日志內(nèi)容記錄,則可以認(rèn)為這種日志種類(lèi)發(fā)生異常??梢杂扇罩鞠到y(tǒng)向運(yùn)營(yíng)人員報(bào)警或根據(jù)此日志種類(lèi)的優(yōu)先級(jí),自動(dòng)停止記錄這種日志種類(lèi)的日志內(nèi)容,同時(shí)繼續(xù)監(jiān)控日志流量。如果日志流量監(jiān)控系統(tǒng)發(fā)現(xiàn)恢復(fù)正常,可以恢復(fù)記錄這種日志種類(lèi)的日志內(nèi)容。根據(jù)本發(fā)明的另一些示例實(shí)施例,日志系統(tǒng)還可以包括存儲(chǔ)介質(zhì)監(jiān)控模塊。存儲(chǔ)介質(zhì)監(jiān)控模塊的一個(gè)示例是硬盤(pán)空間監(jiān)控模塊。當(dāng)硬盤(pán)空間監(jiān)控模塊發(fā)現(xiàn)硬盤(pán)剩余空間較小,達(dá)到一定的閥值時(shí),可以向運(yùn)營(yíng)人員報(bào)警。當(dāng)進(jìn)一步達(dá)到更小的閥值時(shí),日志系統(tǒng)會(huì)停止記錄低優(yōu)先級(jí)的日志種類(lèi),以確保高優(yōu)先級(jí)的重要日志能完整記錄。根據(jù)本發(fā)明的另一些示例實(shí)施例,日志系統(tǒng)例如還可以包括網(wǎng)絡(luò)異常 監(jiān)控模塊和/或數(shù)據(jù)庫(kù)異常監(jiān)控模塊,當(dāng)發(fā)現(xiàn)網(wǎng)絡(luò)異?;驍?shù)據(jù)庫(kù)異常后,網(wǎng)絡(luò)異常監(jiān)控模塊或數(shù)據(jù)庫(kù)異常監(jiān)控模塊可以報(bào)警或通過(guò)修改配置文件來(lái)改變?nèi)罩居涗浄绞?例如,改為將日志內(nèi)容記錄到硬盤(pán)中)??傊?,本發(fā)明把日志記錄模塊抽象出來(lái),根據(jù)記錄日志的存儲(chǔ)媒介不同,可以實(shí)現(xiàn)不同的日志記錄模塊。本發(fā)明還可以實(shí)現(xiàn)組合形式的日志記錄模塊,組合形式的日志記錄模塊可以包含多個(gè)其它的日志記錄模塊,實(shí)現(xiàn)同一條日志內(nèi)容同時(shí)向不同的存儲(chǔ)媒介寫(xiě)入的效果。本發(fā)明還可以實(shí)現(xiàn)空的日志記錄模塊,如果使用空的日志記錄模塊,意味著當(dāng)前日志內(nèi)容會(huì)丟棄,當(dāng)服務(wù)器受到某種攻擊或發(fā)生某種異常時(shí)會(huì)記錄大量無(wú)用的日志時(shí),可以把相應(yīng)日志緊急配置為空的日志記錄模塊,避免引起其它問(wèn)題。本發(fā)明引入了日志記錄模塊生成器,它除了可以生成日志記錄模塊外,還可以維護(hù)日志記錄模塊,比如某一種日志內(nèi)容原先是向硬盤(pán)文件寫(xiě)入,可以通過(guò)修改配置文件,從而修改為向網(wǎng)絡(luò)或數(shù)據(jù)庫(kù)寫(xiě)入日志內(nèi)容,或者使用組合形式的日志記錄模塊,實(shí)現(xiàn)在向硬盤(pán)文件寫(xiě)入日志內(nèi)容的同時(shí),向網(wǎng)絡(luò)或數(shù)據(jù)庫(kù)寫(xiě)入日志內(nèi)容。根據(jù)本發(fā)明,還可以對(duì)不同的日志種類(lèi),進(jìn)行優(yōu)先級(jí)分類(lèi),當(dāng)發(fā)生某種緊急情況時(shí),只記錄高優(yōu)先級(jí)的日志內(nèi)容,而丟棄掉低優(yōu)先級(jí)的日志內(nèi)容,以確保高優(yōu)先級(jí)的日志內(nèi)容能記錄下來(lái)。根據(jù)本發(fā)明,在日志記錄模塊生成器中,包括一個(gè)日志種類(lèi)標(biāo)識(shí)與日志記錄模塊的對(duì)應(yīng)關(guān)系表格。這個(gè)對(duì)應(yīng)關(guān)系表格在服務(wù)器啟動(dòng)時(shí)建立,在配置文件變化時(shí)進(jìn)行維護(hù),在記錄日志內(nèi)容時(shí),用于根據(jù)日志種類(lèi)標(biāo)識(shí)迅速確認(rèn)要使用的日志記錄模塊。根據(jù)本發(fā)明,使用統(tǒng)一的日志系統(tǒng)接口,在記錄日志內(nèi)容時(shí),只需寫(xiě)入日志種類(lèi)標(biāo)識(shí)和日志內(nèi)容,而不用關(guān)注這條日志內(nèi)容未來(lái)會(huì)怎樣記錄。本領(lǐng)域的技術(shù)人員可以理解上述實(shí)施例的方法可以通過(guò)能夠在計(jì)算裝置上運(yùn)行的計(jì)算機(jī)可讀指令實(shí)現(xiàn)。圖5示出被配置成實(shí)施這里提供的一個(gè)或多個(gè)實(shí)施例的計(jì)算裝置1002的例子。計(jì)算裝置1002的一個(gè)實(shí)例是服務(wù)器。計(jì)算裝置1002可以包括處理單元1006和存儲(chǔ)器1008。存儲(chǔ)器1008例如可以是易失性的(例如RAM)、非易失性的(例如ROM、閃速存儲(chǔ)器等等)、或二者的組合。 這種配置在圖5上用虛線1004例示。裝置1002還可包括附加的存儲(chǔ)裝置,包括但不限于,磁存儲(chǔ)裝置、光存儲(chǔ)裝置等等。這樣的附加存儲(chǔ)裝置在圖5上用存儲(chǔ)裝置1010例示。在一個(gè)實(shí)施例中,實(shí)施這里提供的一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)可讀指令可以是在存儲(chǔ)裝置1010中。存儲(chǔ)裝置1010還可存儲(chǔ)操作系統(tǒng)、應(yīng)用程序等等的其它計(jì)算機(jī)可讀指令。計(jì)算機(jī)可讀指令可被裝載在存儲(chǔ)器1008中,用于例如由處理單元1006執(zhí)行。裝置1002還可包括允許裝置1002與其它裝置通信的通信裝置1016。通信裝置1016可包括但不限于,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機(jī)/接收機(jī)、紅外端口、USB連接、或用于將計(jì)算裝置1002連接到其它計(jì)算裝置的其它接口。通信裝置1016可包括有線連接或無(wú)線連接。裝置1002可包括輸入裝置1014,諸如鍵盤(pán)、鼠標(biāo)、筆、話音輸入裝置、觸摸輸入裝置、紅外照相機(jī)、視頻輸入裝置、和/或任何其它輸入裝置。諸如一個(gè)或多個(gè)顯示器、揚(yáng)聲器、打印機(jī)、和/或任何其它輸出裝置那樣的輸出裝置1012也可以被包括在裝置1002中。輸入裝置1014和輸出裝置1012可以經(jīng)由有線連接、無(wú)線連接或它們的任何組合被連接到裝置1002。計(jì)算裝置1002的部件可以通過(guò)各種互連,諸如總線,而被連接。這樣的互連可包括諸如PCIExpress那樣的外圍設(shè)備互連(PCI)、通用串行總線(USB)、firewire(IEEE1394)、光總線結(jié)構(gòu)等等。以上已經(jīng)參考本發(fā)明的具體實(shí)施例來(lái)描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員均了解,可以對(duì)這些具體實(shí)施例進(jìn)行各種修改、組合和變更,而不會(huì)脫離由權(quán)利要求或其等同物限定的本發(fā)明的精神和范圍。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3 
當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
呼玛县| 龙陵县| 淳化县| 镇平县| 息烽县| 镇平县| 莆田市| 文成县| 耿马| 陕西省| 扬州市| 钟祥市| 永川市| 嘉义县| 太湖县| 湖州市| 武山县| 临夏县| 池州市| 甘肃省| 防城港市| 禹州市| 台湾省| 北碚区| 兴海县| 惠州市| 东宁县| 郑州市| 光山县| 郯城县| 平果县| 奉化市| 射阳县| 湘西| 通河县| 台南县| 大宁县| 驻马店市| 乌兰浩特市| 南丰县| 云阳县|