設(shè)備1時,所述第一裝置11接收并解析出來自網(wǎng)站的日志相關(guān)請求A1的日志來源和日志內(nèi)容時,根據(jù)預(yù)設(shè)的各日志來源和日志相關(guān)模塊的對應(yīng)關(guān)系,確定所對應(yīng)的網(wǎng)站日志相關(guān)模塊。
[0032]又如,當(dāng)所述購物平臺中的購物處理軟件產(chǎn)生一個與銀聯(lián)接口連接異常的日志信息時,將該異常的日志信息和購物處理軟件日志來源包含在日志相關(guān)請求A2中,并發(fā)送給所述日志處理設(shè)備1。同樣,當(dāng)所述第一裝置11接收并解析出來自購物處理軟件的日志相關(guān)請求A2的日志來源和日志內(nèi)容時,根據(jù)預(yù)設(shè)的各日志來源和日志相關(guān)模塊的對應(yīng)關(guān)系,確定所對應(yīng)的購物處理日志相關(guān)模塊。
[0033]本領(lǐng)域技術(shù)人員應(yīng)該理解,所述第一裝置11與網(wǎng)站、服務(wù)端、客戶端等設(shè)備之間可以是通過網(wǎng)絡(luò)進(jìn)行通信連接,也可以是通過程序接口調(diào)用的方式進(jìn)行通信。
[0034]本領(lǐng)域技術(shù)人員還應(yīng)能理解上述根據(jù)日志相關(guān)請求確定待執(zhí)行的日志相關(guān)模塊的方式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的根據(jù)日志相關(guān)請求確定待執(zhí)行的日志相關(guān)模塊的方式如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0035]所述第二裝置12通過調(diào)用所述日志相關(guān)模塊所屬隔離容器所對應(yīng)的類共享池中與所述日志相關(guān)模塊所對應(yīng)的日志實(shí)現(xiàn)類,執(zhí)行所述日志相關(guān)模塊,以獲得與所述日志相關(guān)請求相對應(yīng)的日志相關(guān)響應(yīng)。
[0036]具體地,所述第一裝置11所得到的日志相關(guān)模塊被安置在對應(yīng)的隔離容器中,該隔離容器所對應(yīng)的類共享池中存儲有日志相關(guān)模塊所對應(yīng)的日志實(shí)現(xiàn)類。當(dāng)所述第一裝置11將所得到的日志相關(guān)模塊提供給所述第二裝置12時,所述第二裝置12根據(jù)預(yù)先在所述類共享池中建立的日志相關(guān)模塊和日志實(shí)現(xiàn)類的對應(yīng)關(guān)系,對所述日志相關(guān)模塊所對應(yīng)的日志實(shí)現(xiàn)類進(jìn)行調(diào)用,以執(zhí)行所述日志相關(guān)模塊,由此獲得與所述日志相關(guān)請求相對應(yīng)的日志相關(guān)響應(yīng)。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,所述類共享池可包含于隔離容器,也可獨(dú)立于該隔離容器、通過網(wǎng)絡(luò)以供該隔離容器訪問調(diào)用。
[0037]在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,所述隔離容器是一種容器,各日志相關(guān)模塊以模塊(module)的形式運(yùn)行在該容器中,從而將架構(gòu)中的類共享池與應(yīng)用程序相隔離。例如,如圖2所示,在java中,所述隔離容器以模塊(module)類的形式運(yùn)行在各應(yīng)用程序中,或運(yùn)行于應(yīng)用程序之外、但可經(jīng)由網(wǎng)絡(luò)被訪問,以達(dá)到將應(yīng)用程序和類共享池相隔離的目的。又如,為了解決龐大的二方包(如內(nèi)部消息客戶端,遠(yuǎn)程調(diào)用框架)的快速、便捷升級以及二方包、應(yīng)用對三方包(如log4j,hessian等)的依賴沖突問題,每一個二方包以Module的形式運(yùn)行在隔離容器內(nèi)部,各Module之間通過類加載模塊(例如ClassLoader)相互隔離,因此Module之間依賴的二方包、三方包的作用域僅限當(dāng)前ClassLoader內(nèi)部,互不影響。
[0038]本領(lǐng)域技術(shù)人員應(yīng)該理解,上述隔離容器的描述僅為舉例。其他現(xiàn)有的或今后可能出現(xiàn)的架構(gòu)中的將類共享池與應(yīng)用程序相隔離的技術(shù)如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0039]在此,所述類共享池中包含但不限于:logback、log4j API及相關(guān)組件類。其中,所述相關(guān)組件類包括但不限于:logback和log4j API之間的轉(zhuǎn)換類等。
[0040]需要說明的是,每個應(yīng)用程序、網(wǎng)站或服務(wù)端的處理程序可以各自對應(yīng)單獨(dú)的隔離容器,也可以公用一個隔離容器。每個日志相關(guān)模塊可以在所屬的隔離容器中的類共享池中得到所對應(yīng)的日志實(shí)現(xiàn)類。
[0041]在此,所述日志處理設(shè)備1預(yù)設(shè)了每個日志相關(guān)模塊與隔離容器的對應(yīng)關(guān)系。各日志相關(guān)模塊可在所對應(yīng)的隔離容器中的類共享池中找到所要調(diào)用的日志實(shí)現(xiàn)類。所述日志相關(guān)模塊與隔離容器的對應(yīng)關(guān)系可由技術(shù)人員手工或利用軟件升級等手段預(yù)先配置在所述日志處理設(shè)備1中,以便所述第一裝置11、第二裝置12和第三裝置13在運(yùn)行時使用。
[0042]例如,所述第二裝置12從預(yù)先配置的隔離容器所對應(yīng)的類共享池中得到與所述購物處理日志相關(guān)模塊相對應(yīng)的購物處理日志實(shí)現(xiàn)類,并根據(jù)購物處理日志相關(guān)請求所提供的日志內(nèi)容(如異常內(nèi)容、異常時間、異常類型等)執(zhí)行所述購物處理日志實(shí)現(xiàn)類,以記錄一次購物處理的異常日志,并將執(zhí)行后的異常日志作為日志相關(guān)響應(yīng)。
[0043]又如,所述第二裝置12從預(yù)先配置的隔離容器所對應(yīng)的類共享池中得到與所述網(wǎng)頁搜索日志相關(guān)模塊相對應(yīng)的網(wǎng)頁搜索日志實(shí)現(xiàn)類,并根據(jù)網(wǎng)頁搜索日志相關(guān)請求所提供的日志內(nèi)容(如用戶名、搜索內(nèi)容等)執(zhí)行所述網(wǎng)頁搜索日志實(shí)現(xiàn)類,以記錄一次網(wǎng)頁搜索的異常日志,并將用于表示日志記錄成功的布爾值作為日志相關(guān)響應(yīng)。
[0044]本領(lǐng)域技術(shù)人員應(yīng)該理解,上述日志相關(guān)響應(yīng)的描述僅為舉例。其他現(xiàn)有的或今后可能出現(xiàn)的其他日志相關(guān)響應(yīng)的技術(shù)如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
[0045]所述第三裝置13將所述日志相關(guān)響應(yīng)提供至所述日志相關(guān)請求所對應(yīng)的目標(biāo)應(yīng)用。
[0046]具體地,所述第三裝置13可視為所述日志處理設(shè)備1的通信部分,其通過網(wǎng)卡或軟件接口等方式將所述日志相關(guān)響應(yīng)返回至發(fā)送所述日志相關(guān)請求的目標(biāo)應(yīng)用。其中,所述目標(biāo)應(yīng)用包括可供用戶發(fā)起日志相關(guān)請求并接收基于該日志相關(guān)請求所返回的日志相關(guān)響應(yīng)的應(yīng)用系統(tǒng)或應(yīng)用模塊;所述目標(biāo)應(yīng)用包括但不限于網(wǎng)站、客戶端軟件、購物處理軟件等,例如在購物網(wǎng)站的已登錄頁面中發(fā)起訪問用戶的歷史訂單信息的請求,或者通過瀏覽器發(fā)起訪問特定日志信息的請求。
[0047]圖3示出根據(jù)本申請一個優(yōu)選實(shí)施例的一種日志處理設(shè)備1。其包括:第一裝置11、第二裝置12、第三裝置13和第四裝置14。具體地,第一裝置11用于根據(jù)日志相關(guān)請求確定待執(zhí)行的日志相關(guān)模塊。第二裝置12用于通過調(diào)用所述日志相關(guān)模塊所屬隔離容器所對應(yīng)的類共享池中與所述日志相關(guān)模塊所對應(yīng)的日志實(shí)現(xiàn)類,執(zhí)行所述日志相關(guān)模塊,以獲得與所述日志相關(guān)請求相對應(yīng)的日志相關(guān)響應(yīng)。第三裝置13用于將所述日志相關(guān)響應(yīng)提供至所述日志相關(guān)請求所對應(yīng)的目標(biāo)應(yīng)用。第四裝置14用于通過對所述隔離容器初始化處理,將對應(yīng)的日志實(shí)現(xiàn)類導(dǎo)入所述類共享池,以建立或更新所述類共享池。其中,所述第一裝置11、第二裝置12和第三裝置13與圖1中第一裝置11、第二裝置12和第三裝置13各自的內(nèi)容相同或基本相同,為簡明起見,故在此不再贅述,并以引用的方式包含于此。
[0048]具體地,所述日志處理設(shè)備1在運(yùn)行時,由其內(nèi)部的第一裝置11通過解析所述日志相關(guān)請求來確定所對應(yīng)的日志相關(guān)模塊,再由所述第二裝置12將所述第一裝置11解析出的各日志內(nèi)容代入所述日志相關(guān)模塊,并指令所述第二裝置12執(zhí)行所代入的日志相關(guān)模塊,在執(zhí)行過程中,所述第二裝置12調(diào)用所述日志相關(guān)模塊所屬隔離容器所對應(yīng)的類共享池中與所述日志相關(guān)模塊所對應(yīng)的日志實(shí)現(xiàn)類,來實(shí)現(xiàn)相應(yīng)日志的處理,以得到與所述日志相關(guān)請求所對應(yīng)的日志相關(guān)響應(yīng),并由所述第三裝置13將所得到的日志相關(guān)響應(yīng)反饋至目標(biāo)應(yīng)用。
[0049]優(yōu)選地,當(dāng)所述類共享池和日志實(shí)現(xiàn)類需要建立時,所述日志處理設(shè)備1中的第四裝置14通過對所述隔離容器初始化處理,將對應(yīng)的日志實(shí)現(xiàn)類導(dǎo)入所述類共享池,以建立所述類共享池。或者,當(dāng)該隔離容器中需要添加新的日志相關(guān)模塊或者其中已有的日志相關(guān)模塊需要被升級更新時,所述日志處理設(shè)備1中的第四裝置14通過對所述隔離容器初始化處理,將對應(yīng)的日志實(shí)現(xiàn)類導(dǎo)入所述類共享池,以更新所述類共享池。
[0050]在此,所述第四裝置14對所述隔離容器初始化處理方式包括但不限于:1)對所述隔離容器中的統(tǒng)一日志模塊初始化處理。例如,將所述統(tǒng)一日志模塊中的jcl-over-slf4j.jar、slf4j-ap1.jar、logback-classic.jar、logback-core.jar 等 jar 包導(dǎo)入所述類共享池中。其中,所述第四裝置14對所述隔離容器中的統(tǒng)一日志模塊初始化處理的方式包括但不限于:a)將對應(yīng)第一日志格式的日志實(shí)現(xiàn)類導(dǎo)入所述類共享池。例如,將logback必須要依賴的jar包導(dǎo)入所述類共享池。b)將用于橋接第二日志格式至所述第一日志格式的日志實(shí)現(xiàn)類導(dǎo)入所述類共享池。其中,當(dāng)所述日志處理設(shè)備1為多個目標(biāo)應(yīng)用提供日志服務(wù)時,由于各目標(biāo)應(yīng)用所對應(yīng)的日志相關(guān)模塊的版本各不相同,需要向各日志相關(guān)模塊提供統(tǒng)一的日志服務(wù),則所述第四裝置14