本申請涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種記錄用戶在web系統(tǒng)中的操作日志的技術(shù)。
背景技術(shù):
互聯(lián)網(wǎng)技術(shù)的發(fā)展給人們帶來了巨大的便捷,而人們也越來越多地訪問各類web頁面,提供訪問服務(wù)的web系統(tǒng)面臨著日益增加的壓力。通過記錄用戶操作日志,可以查看在web系統(tǒng)中被用戶操作過的數(shù)據(jù),可以追溯數(shù)據(jù)的修改記錄,從而在定位問題的過程中起到關(guān)鍵作用?,F(xiàn)有的記錄用戶操作日志的技術(shù)中,普遍針對具體業(yè)務(wù)場景記錄用戶操作日志,將用戶修改前和修改后的數(shù)據(jù)記錄下來。然而,這會使得日志代碼入侵到業(yè)務(wù)代碼中,增加了web系統(tǒng)的負(fù)擔(dān),而且不具備通用性,每新增一個業(yè)務(wù)都需要增加相應(yīng)的日志記錄。
技術(shù)實(shí)現(xiàn)要素:
本申請的一個目的是提供一種記錄用戶在web系統(tǒng)中的操作日志的方法與設(shè)備,以解決日志代碼入侵到業(yè)務(wù)代碼的問題。
根據(jù)本申請的一個方面,提供了一種記錄用戶在web系統(tǒng)中的操作日志的方法,其中,該方法包括:
在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息;
通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息;
根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志。
根據(jù)本申請的另一個方面,提供了一種記錄用戶在web系統(tǒng)中的操作日志的設(shè)備,其中,該設(shè)備包括:
用戶信息獲取裝置,用于在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息;
操作信息獲取裝置,用于通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息;
操作日志生成裝置,用于根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志。
與現(xiàn)有技術(shù)相比,本申請?jiān)谟脩舻卿洈r截模塊的過程中獲取對應(yīng)的用戶信息,通過所述攔截模塊獲取用戶登錄后在web系統(tǒng)中的操作信息,然后根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志;本申請通過AOP技術(shù)記錄所述操作信息,其中,所述操作信息包括用戶操作所調(diào)用的相關(guān)程序的運(yùn)行狀態(tài)的相關(guān)信息,避免了日志代碼入侵業(yè)務(wù)代碼的情況,通用性強(qiáng)且易于維護(hù)。進(jìn)一步地,本申請將所述操作信息對應(yīng)的時間信息通過添加時間戳的方式與序列化的所述操作信息及所述用戶信息相關(guān)聯(lián),為檢索用戶操作日志提供了方便。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點(diǎn)將會變得更明顯:
圖1示出根據(jù)本申請一個方面的一種記錄用戶在web系統(tǒng)中的操作日志的方法流程圖;
圖2示出根據(jù)本申請一個優(yōu)選實(shí)施例的一種記錄用戶在web系統(tǒng)中的操作日志的方法流程圖;
圖3示出根據(jù)本申請另一個方面的一種記錄用戶在web系統(tǒng)中的操作日志的設(shè)備示意圖;
圖4示出根據(jù)本申請一個優(yōu)選實(shí)施例的一種記錄用戶在web系統(tǒng)中的操作日志的設(shè)備示意圖。
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施方式
下面結(jié)合附圖對本申請作進(jìn)一步詳細(xì)描述。
在本申請一個典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括 一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲器,隨機(jī)存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flashRAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)、動態(tài)隨機(jī)存取存儲器(DRAM)、其他類型的隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
圖1示出根據(jù)本申請一個方面的一種記錄用戶在web系統(tǒng)中的操作日志的方法流程圖。
該方法包括步驟S11、步驟S12和步驟S13。具體地,在步驟S11中,設(shè)備1在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息;在步驟S12中,設(shè)備1通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息;在步驟S13中,設(shè)備1根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志。
在此,所述設(shè)備1包括但不限于用戶設(shè)備、網(wǎng)絡(luò)設(shè)備、或用戶設(shè)備與網(wǎng)絡(luò)設(shè)備通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備。所述用戶設(shè)備其包括但不限于任何一種可與用戶通過觸摸板進(jìn)行人機(jī)交互的移動電子產(chǎn)品,例如智能手機(jī)、平板電腦等,所述移動電子產(chǎn)品可以采用任意操作系統(tǒng),如android操作系統(tǒng)、iOS操作系統(tǒng)等。其中,所述網(wǎng)絡(luò)設(shè)備包括一種能夠按照事先設(shè)定或存儲的指令,自動進(jìn)行數(shù)值計(jì)算和信息處理的電子設(shè)備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式 設(shè)備等。所述網(wǎng)絡(luò)設(shè)備其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云;在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個虛擬超級計(jì)算機(jī)。所述網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)、無線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。優(yōu)選地,設(shè)備1還可以是運(yùn)行于所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備、或用戶設(shè)備與網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)設(shè)備、觸摸終端或網(wǎng)絡(luò)設(shè)備與觸摸終端通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備上的腳本程序。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)能理解上述設(shè)備1僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的設(shè)備1如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
設(shè)備1的各個步驟之間是持續(xù)不斷工作的。具體地,在步驟S11中,設(shè)備1持續(xù)在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息;在步驟S12中,設(shè)備1持續(xù)通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息;在步驟S13中,設(shè)備1持續(xù)根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志;直至所述設(shè)備1停止工作。
在步驟S11中,設(shè)備1在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息。
在此,所述用戶信息包括用戶對應(yīng)的賬號信息和密碼信息。在用戶進(jìn)行登錄操作的過程中,通過所述攔截模塊獲取用戶輸入的所述用戶信息。
優(yōu)選地,在步驟S11中,設(shè)備1在用戶登錄攔截模塊的過程中,獲取對應(yīng)的用戶信息,并將所述用戶信息存儲于所述攔截模塊對應(yīng)的線程局部變量。
在具體的實(shí)施例中,所述web系統(tǒng)基于MVC(Model View Controller,模型-視圖-控制器)框架,在此,利用基于MVC框架開發(fā)的攔截機(jī)制。在用戶登錄的過程中,獲取所述用戶信息后,將其存儲于線程局部變量(ThreadLocal),那么該線程中的所有方法都能從中獲取所述用戶信息。
在步驟S12中,設(shè)備1通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息。
在此,用戶登錄后在web系統(tǒng)中進(jìn)行的各類操作,例如修改個人資料、 搜索關(guān)鍵詞等。根據(jù)用戶操作會調(diào)用相關(guān)程序,通過所述攔截模塊獲取所述操作信息。
具體地,所述操作信息包括以下至少任一項(xiàng):所述用戶在所述web系統(tǒng)中所調(diào)用應(yīng)用的應(yīng)用信息;所述用戶在所述web系統(tǒng)中調(diào)用應(yīng)用時的調(diào)用參數(shù)信息;所述用戶在所述web系統(tǒng)中調(diào)用應(yīng)用時的返回結(jié)果信息;所述用戶在所述web系統(tǒng)中調(diào)用應(yīng)用時的調(diào)用錯誤信息。
例如,所述操作信息可以包括用戶操作所調(diào)用的相關(guān)程序的運(yùn)行狀態(tài)的相關(guān)信息。所述用戶在所述web系統(tǒng)中所調(diào)用應(yīng)用的應(yīng)用信息包括用戶操作所調(diào)用的相關(guān)程序中的類、方法等。所調(diào)用的相關(guān)程序中的方法帶有參數(shù)。用戶的某一次的請求由某個類的某個方法執(zhí)行,并在執(zhí)行后返回結(jié)果和/或錯誤信息。即,所述操作信息可以包括:用戶操作所調(diào)用的相關(guān)程序中的類、方法;用戶操作所調(diào)用的相關(guān)程序中的方法所帶有的參數(shù);由用戶操作所調(diào)用的相關(guān)程序中的方法執(zhí)行后返回的結(jié)果和/或錯誤信息。
在步驟S13中,設(shè)備1根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志。
在此,所述用戶信息為所述操作信息對應(yīng)的用戶信息。所述操作信息對應(yīng)的時間信息包括用戶執(zhí)行操作的時間。
具體地,在步驟S13中,設(shè)備1序列化所述操作信息及所述用戶信息;將所述操作信息對應(yīng)的時間信息通過添加時間戳的方式與序列化的所述操作信息及所述用戶信息相關(guān)聯(lián),以獲得對應(yīng)的用戶操作日志。
在具體的實(shí)施例中,先將所述操作信息及所述用戶信息序列化,再為序列化的所述操作信息及所述用戶信息添加時間戳后存入對應(yīng)的用戶操作日志。優(yōu)選地,所述時間戳獨(dú)立于序列化的所述操作信息及所述用戶信息,以方便后續(xù)將時間信息作為主要檢索字段對用戶操作日志進(jìn)行檢索。
優(yōu)選地,所述序列化的所述操作信息及所述用戶信息基于JSON格式。
在此,JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數(shù)據(jù)交換格式。優(yōu)選地,將所述操作信息及所述用戶信息以JSON格式序列化。
當(dāng)然,也可以采用XML(可擴(kuò)展標(biāo)記語言)等其他數(shù)據(jù)交換格式,本領(lǐng) 域技術(shù)人員應(yīng)能理解上述數(shù)據(jù)交換格式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的數(shù)據(jù)交換格式如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
圖2示出根據(jù)本申請一個優(yōu)選實(shí)施例的一種記錄用戶在web系統(tǒng)中的操作日志的方法流程圖。
該方法包括步驟S21、步驟S22、步驟S23和步驟S24。在此,步驟S21、步驟S23與圖1中步驟S11、步驟S13的內(nèi)容相同或基本相同,為簡明起見,不再贅述。
具體地,所述web系統(tǒng)基于MVC框架;在步驟S24中,設(shè)備1通過所述web系統(tǒng)基于MVC框架的控制器配置所述攔截模塊的切面;在步驟S22中,設(shè)備1通過配置后的所述攔截模塊獲取所述用戶登錄后在所述web系統(tǒng)中的操作信息。
在具體的實(shí)施例中,所述控制器是MVC(Model View Controller,模型-視圖-控制器)框架中的控制器(Controller),通常負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。在此,應(yīng)用了AOP(Aspect-OrientedProgramming,面向切面編程)技術(shù),所述配置后的攔截模塊可以包括AOP攔截器,在控制器上設(shè)置AOP攔截器以獲取所述操作信息。
例如,可以通過如下代碼配置bean和pointcut確定實(shí)施切面的位置。
例如,下面是典型的切面代碼實(shí)現(xiàn)。
圖3示出根據(jù)本申請另一個方面的一種記錄用戶在web系統(tǒng)中的操作日志的設(shè)備1,其中,設(shè)備1包括用戶信息獲取裝置11、操作信息獲取裝置12和操作日志生成裝置13。
具體地,所述用戶信息獲取裝置11在用戶登錄攔截模塊的過程中獲取對 應(yīng)的用戶信息;所述操作信息獲取裝置12通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息;所述操作日志生成裝置13根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志。
在此,所述設(shè)備1包括但不限于用戶設(shè)備、網(wǎng)絡(luò)設(shè)備、或用戶設(shè)備與網(wǎng)絡(luò)設(shè)備通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備。所述用戶設(shè)備其包括但不限于任何一種可與用戶通過觸摸板進(jìn)行人機(jī)交互的移動電子產(chǎn)品,例如智能手機(jī)、平板電腦等,所述移動電子產(chǎn)品可以采用任意操作系統(tǒng),如android操作系統(tǒng)、iOS操作系統(tǒng)等。其中,所述網(wǎng)絡(luò)設(shè)備包括一種能夠按照事先設(shè)定或存儲的指令,自動進(jìn)行數(shù)值計(jì)算和信息處理的電子設(shè)備,其硬件包括但不限于微處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式設(shè)備等。所述網(wǎng)絡(luò)設(shè)備其包括但不限于計(jì)算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云;在此,云由基于云計(jì)算(Cloud Computing)的大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個虛擬超級計(jì)算機(jī)。所述網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)、無線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。優(yōu)選地,設(shè)備1還可以是運(yùn)行于所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備、或用戶設(shè)備與網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)設(shè)備、觸摸終端或網(wǎng)絡(luò)設(shè)備與觸摸終端通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備上的腳本程序。當(dāng)然,本領(lǐng)域技術(shù)人員應(yīng)能理解上述設(shè)備1僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的設(shè)備1如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
上述各裝置之間是持續(xù)不斷工作的,在此,本領(lǐng)域技術(shù)人員應(yīng)理解“持續(xù)”是指上述各裝置分別實(shí)時地或者按照設(shè)定的或?qū)崟r調(diào)整的工作模式要求,例如所述用戶信息獲取裝置11持續(xù)在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息;所述操作信息獲取裝置12持續(xù)通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息;所述操作日志生成裝置13持續(xù)根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志;直至所述設(shè)備1停止工作。
所述用戶信息獲取裝置11在用戶登錄攔截模塊的過程中獲取對應(yīng)的用戶信息。
在此,所述用戶信息包括用戶對應(yīng)的賬號信息和密碼信息。在用戶進(jìn)行登錄操作的過程中,通過所述攔截模塊獲取用戶輸入的所述用戶信息。
優(yōu)選地,所述用戶信息獲取裝置11在用戶登錄攔截模塊的過程中,獲取對應(yīng)的用戶信息,并將所述用戶信息存儲于所述攔截模塊對應(yīng)的線程局部變量。
在具體的實(shí)施例中,所述web系統(tǒng)基于MVC(Model View Controller,模型-視圖-控制器)框架,在此,利用基于MVC框架開發(fā)的攔截機(jī)制。在用戶登錄的過程中,獲取所述用戶信息后,將其存儲于線程局部變量(ThreadLocal),那么該線程中的所有方法都能從中獲取所述用戶信息。
所述操作信息獲取裝置12通過所述攔截模塊獲取所述用戶登錄后在web系統(tǒng)中的操作信息。
在此,用戶登錄后在web系統(tǒng)中進(jìn)行的各類操作,例如修改個人資料、搜索關(guān)鍵詞等。根據(jù)用戶操作會調(diào)用相關(guān)程序,通過所述攔截模塊獲取所述操作信息。
具體地,所述操作信息包括以下至少任一項(xiàng):所述用戶在所述web系統(tǒng)中所調(diào)用應(yīng)用的應(yīng)用信息;所述用戶在所述web系統(tǒng)中調(diào)用應(yīng)用時的調(diào)用參數(shù)信息;所述用戶在所述web系統(tǒng)中調(diào)用應(yīng)用時的返回結(jié)果信息;所述用戶在所述web系統(tǒng)中調(diào)用應(yīng)用時的調(diào)用錯誤信息。
例如,所述操作信息可以包括用戶操作所調(diào)用的相關(guān)程序的運(yùn)行狀態(tài)的相關(guān)信息。所述用戶在所述web系統(tǒng)中所調(diào)用應(yīng)用的應(yīng)用信息包括用戶操作所調(diào)用的相關(guān)程序中的類、方法等。所調(diào)用的相關(guān)程序中的方法帶有參數(shù)。用戶的某一次的請求由某個類的某個方法執(zhí)行,并在執(zhí)行后返回結(jié)果和/或錯誤信息。即,所述操作信息可以包括:用戶操作所調(diào)用的相關(guān)程序中的類、方法;用戶操作所調(diào)用的相關(guān)程序中的方法所帶有的參數(shù);由用戶操作所調(diào)用的相關(guān)程序中的方法執(zhí)行后返回的結(jié)果和/或錯誤信息。
所述操作日志生成裝置13根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志。
在此,所述用戶信息為所述操作信息對應(yīng)的用戶信息。所述操作信息對應(yīng)的時間信息包括用戶執(zhí)行操作的時間。
具體地,所述操作日志生成裝置13序列化所述操作信息及所述用戶信息;將所述操作信息對應(yīng)的時間信息通過添加時間戳的方式與序列化的所述操作信息及所述用戶信息相關(guān)聯(lián),以獲得對應(yīng)的用戶操作日志。
在具體的實(shí)施例中,先將所述操作信息及所述用戶信息序列化,再為序列化的所述操作信息及所述用戶信息添加時間戳后存入對應(yīng)的用戶操作日志。優(yōu)選地,所述時間戳獨(dú)立于序列化的所述操作信息及所述用戶信息,以方便后續(xù)將時間信息作為主要檢索字段對用戶操作日志進(jìn)行檢索。
優(yōu)選地,所述序列化的所述操作信息及所述用戶信息基于JSON格式。
在此,JSON(JavaScript Object Notation,JavaScript對象表示法)是一種輕量級的數(shù)據(jù)交換格式。優(yōu)選地,將所述操作信息及所述用戶信息以JSON格式序列化。
當(dāng)然,也可以采用XML(可擴(kuò)展標(biāo)記語言)等其他數(shù)據(jù)交換格式,本領(lǐng)域技術(shù)人員應(yīng)能理解上述數(shù)據(jù)交換格式僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的數(shù)據(jù)交換格式如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
圖4示出根據(jù)本申請一個優(yōu)選實(shí)施例的一種記錄用戶在web系統(tǒng)中的操作日志的設(shè)備1,其中,設(shè)備1包括用戶信息獲取裝置11’、操作信息獲取裝置12’、操作日志生成裝置13’和配置裝置14’。
在此,所述用戶信息獲取裝置11’、操作日志生成裝置13’與圖3中用戶信息獲取裝置11、操作日志生成裝置13的內(nèi)容相同或基本相同,為簡明起見,不再贅述。
具體地,所述web系統(tǒng)基于MVC框架;配置裝置14’通過所述web系統(tǒng)基于MVC框架的控制器配置所述攔截模塊的切面;所述操作信息獲取裝置12’通過配置后的所述攔截模塊獲取所述用戶登錄后在所述web系統(tǒng)中的操作信息。
在具體的實(shí)施例中,所述控制器是MVC(Model View Controller,模型-視圖-控制器)框架中的控制器(Controller),通常負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。在此,應(yīng)用了AOP(Aspect-Oriented Programming,面向切面編程)技術(shù),所述配置后的攔截模塊可以包括AOP 攔截器,在控制器上設(shè)置AOP攔截器以獲取所述操作信息。
例如,可以通過如下代碼配置bean和pointcut確定實(shí)施切面的位置。
例如,下面是典型的切面代碼實(shí)現(xiàn)。
與現(xiàn)有技術(shù)相比,本申請?jiān)谟脩舻卿洈r截模塊的過程中獲取對應(yīng)的用戶信息,通過所述攔截模塊獲取用戶登錄后在web系統(tǒng)中的操作信息,然后根據(jù)所述操作信息、所述用戶信息以及所述操作信息對應(yīng)的時間信息生成對應(yīng)的用戶操作日志;本申請通過AOP技術(shù)記錄所述操作信息,其中,所述操作信息包括用戶操作所調(diào)用的相關(guān)程序的運(yùn)行狀態(tài)的相關(guān)信息,避免了日志代碼入侵業(yè)務(wù)代碼的情況,通用性強(qiáng)且易于維護(hù)。進(jìn)一步地,本申請將所述操作信息對應(yīng)的時間信息通過添加時間戳的方式與序列化的所述操作信息及所述用戶信息相關(guān)聯(lián),為檢索用戶操作日志提供了方便。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請進(jìn)行各種改動和變型而不脫離本申請的精神和范圍。這樣,倘若本申請的這些修改和變型屬于本申請權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專用集成電路(ASIC)、通用目的計(jì)算機(jī)或任何其他類似硬件設(shè)備來實(shí)現(xiàn)。在一個實(shí)施例中,本申請的軟件程序可以通過處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲器,磁或光驅(qū)動器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個步驟或功能的電路。
另外,本申請的一部分可被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序 指令,當(dāng)其被計(jì)算機(jī)執(zhí)行時,通過該計(jì)算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請的方法和/或技術(shù)方案。而調(diào)用本申請的方法的程序指令,可能被存儲在固定的或可移動的記錄介質(zhì)中,和/或通過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲在根據(jù)所述程序指令運(yùn)行的計(jì)算機(jī)設(shè)備的工作存儲器中。在此,根據(jù)本申請的一個實(shí)施例包括一個裝置,該裝置包括用于存儲計(jì)算機(jī)程序指令的存儲器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時,觸發(fā)該裝置運(yùn)行基于前述根據(jù)本申請的多個實(shí)施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個單元或裝置也可以由一個單元或裝置通過軟件或者硬件來實(shí)現(xiàn)。第一,第二等詞語用來表示名稱,而并不表示任何特定的順序。