日志輸出控制設(shè)備、方法及程序的制作方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及日志輸出控制設(shè)備、方法及程序。
【背景技術(shù)】
[0002]近年來,對于門戶產(chǎn)品,由于Ajax (異步JavaScript (注冊商標(biāo))+XML)、HTML5、CSS3 (串接式表單,等級3)以及JavaScript庫的流行,將服務(wù)器側(cè)提供的功能轉(zhuǎn)移到客戶端側(cè)使得由客戶端實現(xiàn)高級功能已經(jīng)成為主流。因此,可以執(zhí)行針對實現(xiàn)的客戶端調(diào)整的處理,并且為此,變得能夠?qū)崿F(xiàn)精細(xì)圖片等的提供。通過將服務(wù)器側(cè)的處理轉(zhuǎn)移到客戶端,即使用戶的數(shù)目增加,也可以將負(fù)載分散到客戶端側(cè)。通過這樣對的對客戶端側(cè)的處理的轉(zhuǎn)移,可以獲得好處,但是也揭示了一些問題。
[0003]智能電話和平板電腦的流行產(chǎn)生了不僅覆蓋個人計算機(PC)環(huán)境而且覆蓋移動設(shè)備環(huán)境的發(fā)展的必要性,并且對于提供客戶端腳本的系統(tǒng),亟需處理平臺的擴(kuò)張。此外,雖然瀏覽器被多樣化,但是吸收各個瀏覽器的行為差異等的客戶端的發(fā)展和測試環(huán)境沒有被充分改善。雖然使用開放源軟件(OSS)提供的庫實現(xiàn)了瀏覽器一部分差異的吸收,但是庫的使用無法實現(xiàn)100 %的補償,并且為此,開發(fā)者需要充分的知識,諸如針對每個瀏覽器的行為調(diào)節(jié)的代碼化的知識。因為在客戶端側(cè)期望的處理變得復(fù)雜,所以在故障出現(xiàn)時可以獲取怎樣詳細(xì)的客戶端環(huán)境的調(diào)試(debug)信息在分析故障時成為關(guān)鍵。
[0004]為了便于對客戶端的這樣的故障分析,客戶端向服務(wù)器傳送用于故障分析的日志。對服務(wù)器側(cè)的日志的傳送實現(xiàn)查錯信息的收集,但是隨著用戶數(shù)目的增加,傳送到服務(wù)器的日志數(shù)量急劇增加。在大型系統(tǒng)中,當(dāng)所有客戶端同樣傳送日志時,服務(wù)器和網(wǎng)絡(luò)的負(fù)載變大,并且為此,不僅其本身的系統(tǒng)而且其他的系統(tǒng)都受到影響。因此,存在云上的大型系統(tǒng)的操作變得困難的問題。
[0005]例如,專利文獻(xiàn)I描述了一種系統(tǒng),該系統(tǒng)使用終端信息來僅收集故障發(fā)生的終端的日志,并且從而防止記錄的日志量變得巨大。
[0006][引用列表]
[0007][專利文獻(xiàn)]
[0008][PTL I]日本特開專利公開 No 2010-117934
【發(fā)明內(nèi)容】
[0009][技術(shù)問題]
[0010]通過將日志收集目標(biāo)限制為出現(xiàn)故障的客戶端,如在專利文獻(xiàn)I的系統(tǒng)中,可以將記錄的日志的數(shù)量限制在一定程度。然而,近年來,將服務(wù)器側(cè)提供的功能轉(zhuǎn)移到客戶端側(cè)已經(jīng)成為主流。在這種情況下,出現(xiàn)故障的客戶端的數(shù)目大大增加,并且因此,當(dāng)所有客戶端同樣傳送日志時,服務(wù)器和網(wǎng)絡(luò)的負(fù)載像原來一樣變大。
[0011]考慮到上述問題,構(gòu)思了本發(fā)明,并且本發(fā)明的目的在于提供一種可以有效地控制客戶端中的日志輸出處理的日志輸出控制設(shè)備、方法及程序。
[0012][對問題的解決方案]
[0013]本發(fā)明的日志輸出控制設(shè)備通過使用客戶端輸出的日志的歷史、關(guān)于從日志檢測的程序的錯誤操作的錯誤操作信息、以及關(guān)于在客戶端執(zhí)行的程序中插入的日志輸出處理的日志生成信息,來動態(tài)地控制客戶端所請求的程序中的日志輸出位置。
[0014]本發(fā)明的日志輸出控制方法包括:
[0015]通過使用客戶端輸出的日志的歷史、關(guān)于從日志檢測的程序的錯誤操作的錯誤操作信息、以及關(guān)于在客戶端執(zhí)行的程序中插入的日志輸出處理的日志生成信息,來動態(tài)地控制客戶端所請求的程序中的日志輸出位置。
[0016]本發(fā)明的程序使得計算機執(zhí)行以下處理:通過使用客戶端輸出的日志的歷史、關(guān)于從日志檢測的程序的錯誤操作的錯誤操作信息、以及關(guān)于在客戶端執(zhí)行的程序中插入的日志輸出處理的日志生成信息,來動態(tài)地控制客戶端所請求的程序中的日志輸出位置。
[0017][本發(fā)明的有益效果]
[0018]根據(jù)本發(fā)明,可以有效控制客戶端中的日志輸出處理。
【附圖說明】
[0019]圖1是本發(fā)明的概念圖。
[0020]圖2是本發(fā)明的第一示例性實施例的配置圖。
[0021]圖3是示出日志生成信息的示意圖。
[0022]圖4是示出錯誤操作信息的示意圖。
[0023]圖5是示出事件歷史的示意圖。
[0024]圖6是示出第一示例性實施例的系統(tǒng)的組成元件以及各個操作處理的流程的示意圖。
[0025]圖7是用于示出在腳本文件中嵌入用于分析故障的日志輸出處理的處理的示意圖。
[0026]圖8是用于示出日志輸出處理插入處理的流程圖。
[0027]圖9是用于示出事件歷史寫入處理的流程圖。
[0028]圖10是用于示出錯誤信息寫入處理的流程圖。
[0029]圖11是例示插入日志輸出處理的腳本的示意圖。
[0030]圖12是本發(fā)明第二示例性實施例的配置圖。
[0031]圖13是用于示出進(jìn)行用戶的識別的規(guī)則的示意圖。
[0032]圖14是示出第二示例性實施例中輸出結(jié)果的示例的示意圖。
[0033]圖15是本發(fā)明第三示例性實施例的配置圖。
【具體實施方式】
[0034]本發(fā)明涉及日志輸出控制設(shè)備,該日志輸出控制設(shè)備動態(tài)地控制在客戶端請求的程序中的日志輸出位置。日志輸出控制設(shè)備使用客戶端輸出的日志的歷史、關(guān)于從日志檢測的程序的錯誤操作的錯誤操作信息、以及關(guān)于由客戶端執(zhí)行的程序中插入的日志輸出處理的日志生成信息,如圖1所示。
[0035]<第一不例性實施例>
[0036]圖2是本發(fā)明的第一示例性實施例的配置圖。
[0037]第一示例性實施例包括日志輸出控制設(shè)備100和腳本執(zhí)行設(shè)備200。在本示例性實施例中,日志輸出控制設(shè)備100是門戶服務(wù)器,并且腳本執(zhí)行設(shè)備是包括web瀏覽器、腳本執(zhí)行引擎等的客戶端。這些通過諸如因特網(wǎng)的網(wǎng)絡(luò)彼此連接。
[0038]在下文中,描述集中于服務(wù)器側(cè)的日志輸出控制設(shè)備100,這是本發(fā)明的重要部分。
[0039]日志輸出控制設(shè)備100包括數(shù)據(jù)傳送-接收單元110、數(shù)據(jù)分析單元120、日志處理單元130、以及存儲管理單元140。
[0040]數(shù)據(jù)傳送-接收單元110包括請求接收單元111、日志接收單元112、以及響應(yīng)傳送單元113。
[0041]數(shù)據(jù)分析單元120包括日志分析單元121和錯誤操作分析單元122。日志分析單元121從記錄的日志消息指定日志ID,并且將日志ID登記在事件歷史中。當(dāng)在事件歷史中登記的消息中設(shè)置錯誤時,錯誤操作分析單元122檢測(提取)錯誤信息。
[0042]日志處理單元130主要對應(yīng)于圖1中的日志輸出控制單元,并且包括日志輸出位置確定單元131和日志輸出處理嵌入單元132。日志輸出位置確定單元131基于錯誤操作信息和關(guān)于過去日志輸出的日志生成信息來確定提供給客戶端側(cè)的腳本中的日志輸出位置。日志輸出處理嵌入單元132被設(shè)置為實際上嵌入日志輸出處理。
[0043]在存儲管理單元140中,存儲日志生成信息141、錯誤操作信息142以及事件歷史信息143。日志生成信息141是關(guān)于腳本中插入的日志輸出處理的信息,并且是包括日志ID、插入位置(文件名、ID和腳本的行數(shù))以及請求URL的信息,如圖3所示。錯誤操作信息是關(guān)于基于日志檢測的腳本的錯誤操作的信息,并且是包括檢測到錯誤操作的日志的日志ID而且包括錯誤操作內(nèi)容的信息,如圖4所示。事件歷史是關(guān)于從客戶端接收到的日志的信息,并且包括日志ID和輸出日志消息,如圖5所示。
[0044]下面描述本示例性實施例的操作。
[0045]圖6示出了本系統(tǒng)的組成元件以及各個操作處理的流程。
[0046]首先,參考圖7的流程圖描述將用于故障分析的日志輸出處理嵌入腳本文件的處理。
[0047]客戶端(腳本執(zhí)行設(shè)備200)的web瀏覽器向門戶服務(wù)器(日志輸出控制設(shè)備100)傳送用于獲得包括JavaScript的源(al)的服務(wù)器資源的HTTP請求。
[0048]當(dāng)門戶服務(wù)器接收HTTP請求(a2)時,門戶服務(wù)器確定要傳送到客戶端的腳本語言(a3),并且執(zhí)行用于JavaScript的日志輸出處理插入處理(a4)。
[0049]這里,參考圖8描述在(a4)處的日志輸出處理插入處理的細(xì)節(jié)。
[0050]在日志輸出處理插入處理中,首先,門戶服務(wù)器讀取日志生成信息(BI)和錯誤操作信息(B2),并且如果錯誤操作信息存在,則基于錯誤操作信息的日志ID,門戶服務(wù)器檢索相同日志ID的日志生成信息。關(guān)于所涉及的執(zhí)行結(jié)果,門戶服務(wù)器指定嵌入日志輸出處理的JavaScript行數(shù),并且在腳本中找到故障產(chǎn)生位置(bl)。
[0051]接著,門戶服務(wù)器讀取實際請求對象的腳本文件,并且確定日志輸出處理的嵌入位置(b2)。在先前指定的故障檢測位置周圍,日志輸出位置的數(shù)目增加。此時,門戶服務(wù)器使用事件歷史信息[日志ID] (B3)來確定是否已經(jīng)執(zhí)行了腳本的功能。在關(guān)于哪個執(zhí)行記錄存在于事件歷史信息中以及關(guān)于參考還沒有產(chǎn)生故障的錯誤操作信息要指示哪一個的功能中,由門戶服務(wù)器進(jìn)行將日志輸出處理的數(shù)目減少到很低的設(shè)置。當(dāng)