亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種生成XML日志的方法和裝置與流程

文檔序號:12034477閱讀:244來源:國知局
一種生成XML日志的方法和裝置與流程

本申請涉及計算機技術(shù)領(lǐng)域,特別是涉及一種生成xml日志的方法和裝置。



背景技術(shù):

日志是按照時間順序記錄計算機系統(tǒng)中硬件和軟件問題的信息,同時還可以監(jiān)視計算機系統(tǒng)中發(fā)生的事件。可以通過日志來檢查計算機系統(tǒng)錯誤的原因,或者計算機系統(tǒng)在受到攻擊時,在日志中尋找攻擊者留下的痕跡。

具體而言,通常是將多個線程的多個動作按照時間順序依次記錄在同一個文本文件中,即日志是按照動作執(zhí)行的時間順序來記錄的。在發(fā)生嚴(yán)重安全事件的情況下,采取人工觀察的方式分析日志記錄,從中獲取異常情況。但是,由于計算機系統(tǒng)每天產(chǎn)生大量的日志,很難發(fā)現(xiàn)日志中的異常情況。例如,某次測試人員提出大概在七點到八點之間,某些操作出現(xiàn)了某個非預(yù)期的結(jié)果。但是這樣的操作在這段時間內(nèi)可能出現(xiàn)了上百次,日志量可能在上萬行,例如,在2014年10月11日七點34分56秒的時候,日志記錄了多個線程的歷史操作,在這樣的日志堆里分析出想要的信息如大海撈針。

總之,需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是:如何能夠提高分析日志的效率。



技術(shù)實現(xiàn)要素:

本申請?zhí)峁┝艘环N生成xml日志的方法和裝置,以解決如何提高分析日志的效率的問題。

為了解決上述問題,本申請實施例公開了一種生成xml日志的方法,包括:

接收創(chuàng)建頂層日志節(jié)點的指令,創(chuàng)建與所述指令對應(yīng)的頂層日志節(jié)點,所述頂層日志節(jié)點包括頂層日志節(jié)點的內(nèi)容和xml節(jié)點;

接收創(chuàng)建子日志節(jié)點的指令,創(chuàng)建與所述創(chuàng)建子日志節(jié)點的指令對應(yīng)的子日志節(jié)點,所述子日志節(jié)點包括子日志節(jié)點的內(nèi)容和所述頂層日志節(jié)點傳遞給所述子日志節(jié)點的xml節(jié)點的指針;

設(shè)置所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性,所述出錯屬性用于判斷所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否中途出錯;

檢測所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值。

可選的,所述檢測所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否出錯,包括:判斷所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容應(yīng)該存在輸出的位置是否存在輸出,若不存在輸出,則確定所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯。

可選的,所述判斷所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容應(yīng)該存在輸出的位置是否存在輸出,若不存在輸出,則確定所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯,包括:

檢測頂層日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;

若頂層日志節(jié)點應(yīng)該存在輸出的位置不存在輸出,則檢測所述子日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;

在所述子日志節(jié)點應(yīng)該存在輸出的位置不存在輸出時,確定所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯;以及,

在子日志節(jié)點應(yīng)該存在輸出的位置存在輸出時,確定所述頂層日志節(jié)點的內(nèi)容中途出錯。

可選的,所述設(shè)置所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性,包括:為所述頂層日志節(jié)點和所述子日志節(jié)點配置出錯屬性;以及,將所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值。

可選的,所述初始值為正常狀態(tài)值,所述檢測所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值,還包括:在檢測到所述頂層日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值;在檢測到子 日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值。

可選的,所述初始值為出錯狀態(tài)值,所述檢測所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值,還包括:在檢測到子日志節(jié)點的內(nèi)容沒有出錯時,將所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值;在檢測到所述頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容沒有出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值。

可選的,包括:各個所述子日志節(jié)點按照創(chuàng)建時間的先后順序排列。

本申請實施例還公開了一種生成xml日志的裝置,包括:

頂層日志節(jié)點創(chuàng)建模塊,用于接收創(chuàng)建頂層日志節(jié)點的指令,創(chuàng)建與所述指令對應(yīng)的頂層日志節(jié)點,所述頂層日志節(jié)點包括頂層日志節(jié)點的內(nèi)容和xml節(jié)點;

子日志節(jié)點創(chuàng)建模塊,用于接收創(chuàng)建子日志節(jié)點的指令,創(chuàng)建與所述創(chuàng)建子日志節(jié)點的指令對應(yīng)的子日志節(jié)點,所述子日志節(jié)點包括子日志節(jié)點的內(nèi)容和所述頂層日志節(jié)點傳遞給所述子日志節(jié)點的xml節(jié)點的指針;

出錯屬性設(shè)置模塊,用于設(shè)置所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性,所述出錯屬性用于判斷所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否中途出錯;

內(nèi)容出錯檢測模塊,用于檢測所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值。

可選的,所述內(nèi)容出錯檢測模塊,包括:輸出判斷子模塊,用于判斷所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容應(yīng)該存在輸出的位置是否存在輸出,若不存在輸出,則確定頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯。

可選的,輸出判斷子模塊,具體用于檢測頂層日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;若頂層日志節(jié)點應(yīng)該存在輸出的位置不存在輸出,則檢 測所述子日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;在所述子日志節(jié)點應(yīng)該存在輸出的位置不存在輸出時,確定所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯;以及,在子日志節(jié)點應(yīng)該存在輸出的位置存在輸出時,確定所述頂層日志節(jié)點的內(nèi)容中途出錯。

可選的,所述出錯屬性設(shè)置模塊,具體用于為所述頂層日志節(jié)點和所述子日志節(jié)點配置出錯屬性;以及將所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值。

可選的,所述初始值為正常狀態(tài)值,所述內(nèi)容出錯檢測模塊,還包括:狀態(tài)修改子模塊,用于在檢測到所述頂層日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值;以及,在檢測到子日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值。

可選的,所述初始值為出錯狀態(tài)值,所述內(nèi)容出錯檢測模塊,還包括:

狀態(tài)修改子模塊,用于在檢測到子日志節(jié)點的內(nèi)容沒有出錯時,將所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值;以及在檢測到所述頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容沒有出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值。

可選的,還包括:排列模塊,用于各個所述子日志節(jié)點按照創(chuàng)建時間的先后順序進行排列。

與現(xiàn)有技術(shù)相比,本申請?zhí)峁┑募夹g(shù)方案具有以下優(yōu)點:

創(chuàng)建頂層日志節(jié)點和子日志節(jié)點,并設(shè)置頂層日志節(jié)點和子日志節(jié)點的出錯屬性;檢測頂層日志節(jié)點和子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值,從而程序人員可以通過查看頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)的狀態(tài)值來判斷日志節(jié)點中途是否出錯,提高了分析日志的效率。

附圖說明

為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面 描述中的附圖僅僅是本申請的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1是本申請的一種生成xml日志的方法實施例的流程示意圖;

圖2是本申請的一種生成xml日志的方法優(yōu)選實施例的步驟流程圖;

圖3是本申請的一種生成xml日志的方法的步驟示例圖示意圖;

圖4a是本申請實施例的一種生成xml日志的裝置的結(jié)構(gòu)示意圖;

圖4b是本申請實施例的另一種生成xml日志的裝置的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本申請實施例中的附圖,對本申請實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。

xml(extensiblemarkuplanguage,可擴展標(biāo)記語言),用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語言,可以用來標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標(biāo)記語言進行定義的源語言。xml是標(biāo)準(zhǔn)通用標(biāo)記語言(sgml)的子集,非常適合web傳輸。xml提供統(tǒng)一的方法來描述和交換獨立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。由于xml在瀏覽器中具有可折疊的特性,能有效實現(xiàn)將各種非結(jié)構(gòu)化日志數(shù)據(jù)轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù),為日志的分析帶來很多方便。

基于上述xml技術(shù)本申請?zhí)峁┝艘环N生成xml日志的方法和裝置,以解決如何提高分析日志的效率的問題。

實施例一

參照圖1,示出了本申請的一種生成xml日志的方法實施例的流程示意圖。

本申請實施例提供了一種生成xml日志的方法,適用于生成海量可分析的日志的情況下,該方法可以由日志分析器來執(zhí)行,如圖1所示,該方法可以包括以下步驟:

步驟s101,接收創(chuàng)建頂層日志節(jié)點的指令,創(chuàng)建與指令對應(yīng)的頂層日志節(jié)點,頂層日志節(jié)點包括頂層日志節(jié)點的內(nèi)容和xml節(jié)點。

本實施可以預(yù)先建立一個日志池(又可以稱節(jié)點池)。其中,該節(jié)點池的元素具體可以包括頂層日志節(jié)點,如頂層xml節(jié)點。當(dāng)接收到創(chuàng)建頂層日志節(jié)點的指令時,可以基于該節(jié)點池創(chuàng)建該指令對應(yīng)的頂層日志節(jié)點,即可以通過節(jié)點池所保存的元素創(chuàng)建頂層日子節(jié)點。該頂層日志節(jié)點可以包括頂層日志節(jié)點的內(nèi)容、頂層日志節(jié)點所調(diào)用的子節(jié)點名稱、頂層日志節(jié)點的名稱等。

在本步驟中,創(chuàng)建頂層日志節(jié)點的指令可以基于觸發(fā)事件生成的,該觸發(fā)事件具體可以包括用戶操作事件、定時觸發(fā)事件。具體的,創(chuàng)建日志節(jié)點的指令可以包括用戶觸發(fā)圖形界面上顯示標(biāo)識生成的指令,例如,當(dāng)用戶點擊圖形界面上顯示標(biāo)識funa,可以確定對應(yīng)的用戶操作事件,從而產(chǎn)生創(chuàng)建頂層日志節(jié)點funa的指令,使得日志分析器可以接收到創(chuàng)建頂層日志節(jié)點funa的指令,即觸發(fā)日志分析器創(chuàng)建頂層日志節(jié)點funa;還可以包括由計時器觸發(fā)產(chǎn)生的指令,例如,計時器以預(yù)先設(shè)定的時間間隔向日志分析器發(fā)送創(chuàng)建頂層日志節(jié)點的指令,從而觸發(fā)日志分析器創(chuàng)建對應(yīng)的頂層日志節(jié)點。

步驟s102,接收創(chuàng)建子日志節(jié)點的指令,創(chuàng)建與所述創(chuàng)建子日志節(jié)點的指令對應(yīng)的子日志節(jié)點,所述子日志節(jié)點包括子日志節(jié)點的內(nèi)容和所述頂層日志節(jié)點傳遞給所述子日志節(jié)點的xml節(jié)點的指針。

在本步驟中,當(dāng)頂層日志節(jié)點調(diào)用其他日志節(jié)點時,可以將調(diào)用的日志節(jié)點作為該頂層日志節(jié)點對應(yīng)的子日志節(jié)點,如在頂層日志節(jié)點的子節(jié)點屬性中設(shè)置所調(diào)用的子日志節(jié)點的名稱。當(dāng)然,本實施例也可以在子日志節(jié)點的父節(jié)點屬性中設(shè)置該頂層日志節(jié)點的名稱,本實施例對此不作限制。具體的,當(dāng)用戶觸發(fā)的服務(wù)或者函數(shù)調(diào)用其他服務(wù)、函數(shù)或方法時,可以再創(chuàng)建一個新xml節(jié)點,并將這個新創(chuàng)建的xml節(jié)點的指針通過參數(shù)的方式向下傳遞。新創(chuàng)建的xml節(jié)點可以基于頂層日志節(jié)點的調(diào)用創(chuàng)建的,并且可以作為頂層日志節(jié)點對應(yīng)的子日志節(jié)點。當(dāng)子日志節(jié)點調(diào)用其他日志節(jié)點時,如在 子節(jié)點函數(shù)再需要調(diào)用其他函數(shù)時,也通過同樣的方式依次傳遞,從而可以通過xml節(jié)點的指針來查看各個日志節(jié)點之間的調(diào)用關(guān)系。例如,在多線程日志中,日志節(jié)點funa調(diào)用了子日志節(jié)點funb和子日志節(jié)點func,則子日志節(jié)點funb和子日志節(jié)點func中都包括日志節(jié)點funa發(fā)送的xml節(jié)點的指針。而且,各個子日志節(jié)點可以按照創(chuàng)建時間的先后順序排列。

步驟s103,設(shè)置頂層日志節(jié)點和子日志節(jié)點的出錯屬性。

出錯屬性可以用于判斷日志節(jié)點是否出錯,如用于判斷頂層日志節(jié)點的內(nèi)容和/或子日志節(jié)點的內(nèi)容是否中途出錯。具體的,本實施在創(chuàng)建日志節(jié)點時,可以為日志節(jié)點配置出錯屬性;還可以為該出錯屬性的屬性值配置初始值,即將日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值。其中,初始值可以是正常狀態(tài)值,也可以是出錯狀態(tài)值,本實施例對此不作限制。若日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值為正常狀態(tài)值,則可以表示該日志節(jié)點的內(nèi)容沒有中途出錯;若日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值為出錯狀態(tài)值,則可以表示該日志節(jié)點的內(nèi)容中途出錯。

作為本申請的一個具體示例,在創(chuàng)建頂層日志節(jié)點和子日志節(jié)點時,可以為頂層日志節(jié)點和子日志節(jié)點配置出錯屬性error,并且還可以將頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值,如將error的布爾值設(shè)置為false(假)值,即將出錯屬性的邏輯狀態(tài)設(shè)置為正常狀態(tài);或者將error的布爾值設(shè)置為true(真)值,即將出錯屬性的邏輯狀態(tài)設(shè)置為出錯狀態(tài)。以日志節(jié)點為funa為例,可以將日志節(jié)點funa的屬性設(shè)置為“false”,表示日志節(jié)點funa沒有出錯,正常運行。

步驟s104,檢測頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值。

在本步驟中,頂層日志節(jié)點的內(nèi)容是在該頂層日志節(jié)點下按照時間順序記錄的計算機系統(tǒng)中硬件和軟件問題;子日志節(jié)點的內(nèi)容是在該子日志節(jié)點下按照時間順序記錄的計算機系統(tǒng)中硬件和軟件問題。在本申請實施例中,可以通過判斷日志節(jié)點的內(nèi)容應(yīng)該存在輸出的位置是否存在輸出來確定日志節(jié)點的內(nèi)容是否出錯,若應(yīng)該存在輸出的位置存在輸出,則可以確定日志 節(jié)點的內(nèi)容未出錯;若應(yīng)該存在輸出的位置不存在輸出,則可以確定日志節(jié)點的內(nèi)容出錯,如將error的布爾值設(shè)置為true(真)值,即將出錯屬性的邏輯狀態(tài)設(shè)置為出錯狀態(tài),以標(biāo)識日志節(jié)點中途出錯。具體的,本實施例可以通過檢測頂層日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出,來判斷頂層日志節(jié)點的內(nèi)容是否出錯。若頂層日志節(jié)點應(yīng)該存在輸出的位置存在輸出,則可以確定頂層日志節(jié)點的內(nèi)容未出錯,即可以確定該頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值為正常狀態(tài)值,并且還可以確定該頂層日志節(jié)點所調(diào)用的子日志節(jié)點的內(nèi)容也未出錯,即可以確定該頂層日志節(jié)點所調(diào)用的子日志節(jié)點的出錯屬性對應(yīng)的狀態(tài)值為正常狀態(tài)值。若頂層日志節(jié)點應(yīng)該存在輸出的位置不存在輸出,則可以確定頂層日志節(jié)點的內(nèi)容中途出錯,即可以該頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值為出錯狀態(tài)值,并且還可以進一步檢測該頂層日志節(jié)點所調(diào)用的各日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;當(dāng)頂層日志節(jié)點所調(diào)用的所有子日志節(jié)點應(yīng)該存在輸出的位置存在輸出時,可以確定頂層日志節(jié)點所調(diào)用的所有子日志節(jié)點的內(nèi)容未出錯,即可以確定所有子日志節(jié)點的出錯屬性對應(yīng)的狀態(tài)值為正常狀態(tài)值,從而可以確定頂層日志節(jié)點的自身內(nèi)容出錯;當(dāng)檢測到某一子日志節(jié)點應(yīng)該存在輸出的位置不存在輸出,可以確定該子日志節(jié)點的內(nèi)容中途出錯,即可以確定子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值為出錯狀態(tài)值,從而可以確定該子日志節(jié)點的內(nèi)容出錯導(dǎo)致調(diào)用其的頂層日志節(jié)點的內(nèi)容出錯。

綜上,本實施里在創(chuàng)建頂層日志節(jié)點和子日志節(jié)點時,可以設(shè)置頂層日志節(jié)點和子日志節(jié)點的出錯屬性,從而可以通過檢測頂層日志節(jié)點和子日志節(jié)點的內(nèi)容是否出錯,來確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值,即程序人員可以通過查看頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)的狀態(tài)值來判斷日志節(jié)點中途是否出錯,提高了分析日志的效率。

實施例二

參照圖2,示出了本申請的一種生成xml日志的方法優(yōu)選實施例的步驟流程圖,具體可以包括如下步驟:

步驟s201,接收創(chuàng)建頂層日志節(jié)點的指令,創(chuàng)建與所述指令對應(yīng)的頂層日志節(jié)點.

其中,頂層日志節(jié)點具體可以包括頂層日志節(jié)點的內(nèi)容和xml節(jié)點。

步驟s202,接收創(chuàng)建子日志節(jié)點的指令,創(chuàng)建與所述創(chuàng)建子日志節(jié)點的指令對應(yīng)的子日志節(jié)點。

子日志節(jié)點具體可以包括子日志節(jié)點的內(nèi)容和所述頂層日志節(jié)點傳遞給所述子日志節(jié)點的xml節(jié)點的指針。

步驟s203,為所述頂層日志節(jié)點和所述子日志節(jié)點配置出錯屬性;以及,將所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值。

步驟s204,檢測頂層日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出。

當(dāng)頂層日志節(jié)點應(yīng)該存在輸出的位置存在輸出時,可以確定頂層日志節(jié)點和子節(jié)點的內(nèi)容沒有出錯,跳轉(zhuǎn)到步驟s206執(zhí)行;當(dāng)頂層日志節(jié)點應(yīng)該存在輸出的位置不存在輸出時,可以確定頂層日志節(jié)點的內(nèi)容中途出錯,并且還可以進一步檢測子日志節(jié)點的應(yīng)該存在輸出的位置是否存在輸出,以確定子節(jié)點的內(nèi)容是否錯,即執(zhí)行步驟s205。

步驟s205,檢測子日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出。

本實施例中,當(dāng)所述子日志節(jié)點應(yīng)該存在輸出的位置不存在輸出時,可以確定所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯;當(dāng)子日志節(jié)點應(yīng)該存在輸出的位置存在輸出時,可以確定所述頂層日志節(jié)點的內(nèi)容中途出錯。

步驟s206,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值。

在本實施例中,若預(yù)先設(shè)置的初始值為正常狀態(tài)值,則可以在確定頂層日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值;以及,可以在確定子日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值。若初始值為出錯狀態(tài)值,則可以在確定子日志節(jié)點的內(nèi)容沒有出錯時,將所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值;以及,可以在確定所述 頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容沒有出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值。例如,頂層日志節(jié)點為funa,若funaerror=“true”,則標(biāo)識頂層日志節(jié)點funa中途出錯,可以將子日志節(jié)點funb的屬性由funberror=“false”修改為funberror=“true”,以標(biāo)識funb中途出錯。從而程序人員可以通過查看日志節(jié)點的屬性來判斷日志節(jié)點是否中途出錯。

實施例三

參照圖3,示出了本申請的一種生成xml日志的方法的步驟示例圖。具體可以包括以下步驟:

步驟s301,依據(jù)觸發(fā)事件生成xml根節(jié)點。

具體的,該觸發(fā)時間可以包括:用戶點擊圖形界面的觸發(fā)事件、定時器所生成的觸發(fā)事件。在檢測到觸發(fā)事件時,日志分析器可以確定觸發(fā)xml日志的方法,即可以通過預(yù)先建立的日志池,如xml根節(jié)點池,生成xml根節(jié)點。

步驟s302,為xml節(jié)點配置屬性信息。

在生成xml根節(jié)點后,日志分析器可以為xml根節(jié)點配置屬性信息,如設(shè)置時間屬性、出錯屬性等,以及為各屬性設(shè)置對應(yīng)的初始屬性值,如將出錯屬性的屬性值設(shè)置為出錯狀態(tài)值,即將出錯屬性設(shè)置為出錯。

步驟s303,輸出信息,和生成子xml節(jié)點。

日志分析器在為xml根節(jié)點設(shè)置屬性信息后,可以輸出相應(yīng)的設(shè)置信息,如輸出成功創(chuàng)建該日志節(jié)點的消息等,以及可以生成子xml節(jié)點,如創(chuàng)建頂層日志節(jié)點。

步驟s304,判斷該子xml節(jié)點是否有調(diào)用子方法。

當(dāng)子xml節(jié)點有調(diào)用子方法時,創(chuàng)建子節(jié)點,并該子節(jié)點傳遞給子方法,如創(chuàng)建頂層日志節(jié)點所調(diào)用的子日志節(jié)點,該子日志節(jié)點包括子日志節(jié)點的內(nèi)容和頂層日志節(jié)點傳遞給該子日志節(jié)點的xml節(jié)點的指針,然后通過跳轉(zhuǎn)回到步驟s302執(zhí)行,從而為子節(jié)點配置屬性信息。

當(dāng)子xml節(jié)點沒有調(diào)用子方法時,可以檢測各xml節(jié)點是否出錯,即執(zhí)行步驟s305。

步驟s305,檢測xml節(jié)點是否出錯。

在本步驟中,可以通過檢測各xml節(jié)點的函數(shù)是否出錯,來判定各xml節(jié)點是否出錯。若函數(shù)沒有出錯,則可以確定該xml節(jié)點沒有出錯,進而將該xml節(jié)點的出錯屬性的屬性值修改為正常狀態(tài)值,以標(biāo)識該xml節(jié)點未出錯。若函數(shù)出錯,則可以保持xml節(jié)點的出錯屬性的屬性值不變。

當(dāng)然,若在為xml節(jié)點配置屬性信息時,將xml節(jié)點的出錯屬性的屬性值設(shè)置為正常狀態(tài)值,則在xml節(jié)點的函數(shù)出錯時,可以將該xml節(jié)點的出錯屬性的屬性值修改為出錯狀態(tài)。

下文結(jié)合具體應(yīng)用場景,對本申請實施例進行論述。以多線程日志a為例,在日志a中,分別調(diào)用了子方法b和子方法c,子方法c調(diào)用了子方法d,子方法d調(diào)用了子方法e和子方法f。

創(chuàng)建日志節(jié)點funa,且設(shè)置日志節(jié)點funa的出錯屬性對應(yīng)的狀態(tài)值為正常狀態(tài)值,如funaerror=“false”。當(dāng)日志節(jié)點funa的內(nèi)容應(yīng)該存在輸出的位置沒有輸出,可以修改日志節(jié)點funa的出錯屬性對應(yīng)的狀態(tài)值,如將funaerror=“false”修改為funaerror=“true”。

funa調(diào)用子方法b和子方法c。創(chuàng)建子方法b的子節(jié)點funb,設(shè)置funb的出錯屬性為funberror=“false”。若子節(jié)點funb存在輸出,則不需要修改子節(jié)點funb的出錯屬性。創(chuàng)建子方法c的子節(jié)點func,設(shè)置func的出錯屬性為funcerror=“false”,若子節(jié)點func不存在輸出,則修改子節(jié)點func的出錯屬性為funcerror=“true”,以表示子節(jié)點func中途出錯。

當(dāng)子節(jié)點func進一步調(diào)用子方法d,可以創(chuàng)建子節(jié)點fund,設(shè)置fund的出錯屬性為funderror=“false”。若子節(jié)點fund存在輸出,則不需要修改子節(jié)點fund的出錯屬性。

當(dāng)子節(jié)點fund進一步調(diào)用子方法e和子方法f時,可以創(chuàng)建子節(jié)點fune,將fune的出錯屬性設(shè)置為funeerror=“false”,若子節(jié)點fune存在輸出,則不需要修改子節(jié)點fune的出錯屬性;以及,創(chuàng)建子節(jié)點funf,設(shè)置funf的 出錯屬性為funferror=“false”,若子節(jié)點funf存在輸出,則不需要修改子節(jié)點funf的出錯屬性。綜上,日志節(jié)點funa和子節(jié)點func中途出錯,子節(jié)點funb、子節(jié)點fund、子節(jié)點fune和子節(jié)點funf中途未出錯,因此可以利用xml在瀏覽器中具有可折疊的特性,將子節(jié)點funb、子節(jié)點fund、子節(jié)點fune和子節(jié)點funf折疊收起,展示折疊后的日志,從而使得程序人員不需要查看全部日志,就可以獲得中途出錯的日志,提高了分析日志的效率。

實施例四

本申請實施例提供了一種生成xml日志的裝置,該裝置可以執(zhí)行上述生成xml日志的方法,如圖4a所示,該裝置具體包括:

頂層日志節(jié)點創(chuàng)建模塊41、子日志節(jié)點創(chuàng)建模塊42、出錯屬性設(shè)置模塊43和內(nèi)容出錯檢測模塊44。

在本申請實施例中,頂層日志節(jié)點創(chuàng)建模塊41,用于接收創(chuàng)建頂層日志節(jié)點的指令,創(chuàng)建與指令對應(yīng)的頂層日志節(jié)點,頂層日志節(jié)點包括頂層日志節(jié)點的內(nèi)容和xml節(jié)點;子日志節(jié)點創(chuàng)建模塊42,用于接收創(chuàng)建子日志節(jié)點的指令,創(chuàng)建與創(chuàng)建子日志節(jié)點的指令對應(yīng)的子日志節(jié)點,子日志節(jié)點包括子日志節(jié)點的內(nèi)容和頂層日志節(jié)點傳遞給子日志節(jié)點的xml節(jié)點的指針;出錯屬性設(shè)置模塊43,用于設(shè)置頂層日志節(jié)點和子日志節(jié)點的屬性,所述出錯屬性用于判斷所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容是否中途出錯;內(nèi)容出錯檢測模塊44,用于判斷頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容是否出錯,確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值。

在頂層日志節(jié)點創(chuàng)建模塊41中,創(chuàng)建日志節(jié)點的指令可以是用戶觸發(fā)圖形界面上顯示標(biāo)識生成的指令,例如,用戶觸發(fā)圖形界面上顯示標(biāo)識funa,則可以產(chǎn)生創(chuàng)建頂層日志節(jié)點funa的指令,從而日志分析器接收到創(chuàng)建頂層日志節(jié)點funa的指令。創(chuàng)建日志節(jié)點的指令也可是由計時器產(chǎn)生,例如,計時器以預(yù)先設(shè)定的時間間隔向日志分析器發(fā)送創(chuàng)建日志節(jié)點的指令。

在子日志節(jié)點創(chuàng)建模塊42中,當(dāng)用戶觸發(fā)的服務(wù)或者函數(shù)調(diào)用其他服務(wù)、函數(shù)或方法時將創(chuàng)建一個新xml節(jié)點并將這個新創(chuàng)建的xml節(jié)點的指針 通過參數(shù)的方式向下傳遞。下層函數(shù)再需要調(diào)用其他函數(shù)時也通過同樣的方式依次傳遞,從而可以通過xml節(jié)點的指針來查看各個日志節(jié)點之間的調(diào)用關(guān)系。例如,在多線程日志中,日志節(jié)點funa調(diào)用了子日志節(jié)點funb和子日志節(jié)點func,則子日志節(jié)點funb和子日志節(jié)點func中都包括日志節(jié)點funa發(fā)送的xml節(jié)點的指針。而且,各個子日志節(jié)點可以按照創(chuàng)建時間的先后順序排列。

在出錯屬性設(shè)置模塊43中,可以為頂層日志節(jié)點和子日志節(jié)點配置出錯屬性error,并且還可以將頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值,如將error的布爾值設(shè)置為false(假)值,即將出錯屬性的邏輯狀態(tài)設(shè)置為正常狀態(tài);或者將error的布爾值設(shè)置為true(真)值,即將出錯屬性的邏輯狀態(tài)設(shè)置為出錯狀態(tài)。以日志節(jié)點為funa為例,可以將日志節(jié)點funa的出錯屬性的初始值設(shè)置為“false”,即funaerror=“false”,表示日志節(jié)點funa沒有出錯,正常運行。

在內(nèi)容出錯檢測模塊44中,頂層日志節(jié)點的內(nèi)容是,在該頂層日志節(jié)點下按照時間順序記錄的計算機系統(tǒng)中硬件和軟件問題;子日志節(jié)點的內(nèi)容是在該子日志節(jié)點下按照時間順序記錄的計算機系統(tǒng)中硬件和軟件問題。在本申請實施例中,可以通過判斷日志節(jié)點的內(nèi)容應(yīng)該存在輸出的位置是否存在輸出來確定日志節(jié)點的內(nèi)容是否出錯,若應(yīng)該存在輸出的為位置存在輸出,則可以確定日志節(jié)點的內(nèi)容未出錯,進而確定該日志節(jié)點的出錯屬性對應(yīng)的狀態(tài)值為正常狀態(tài)值;若應(yīng)該存在輸出的為位置不存在輸出,則可以確定日志節(jié)點的內(nèi)容出錯,進而確定該日志節(jié)點的出錯屬性對應(yīng)的狀態(tài)值為出錯狀態(tài)值,如可以將日志節(jié)點的出錯屬性error的布爾值修改為true,以標(biāo)識日志節(jié)點中途出錯。

本申請實施例提供的一種生成xml日志的裝置,通過創(chuàng)建頂層日志節(jié)點和子日志節(jié)點,并設(shè)置頂層日志節(jié)點和子日志節(jié)點的出錯屬性;從而可以通過檢測頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容是否出錯來確定頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值,即程序人員可以通過查看日志節(jié)點的屬性來判斷日志節(jié)點中途是否出錯,提高了分析日志的效率。

在上述圖4a的基礎(chǔ)上,可選的,內(nèi)容出錯檢測模塊44可以包括輸出判斷子模塊441,如圖4b所示。

該輸出判斷子模塊441可以用于判斷日志節(jié)點的內(nèi)容應(yīng)該存在輸出的位置是否存在輸出來確定日志節(jié)點的內(nèi)容是否出錯,若應(yīng)該存在輸出的為位置存在輸出,則可以確定日志節(jié)點的內(nèi)容未出錯。若應(yīng)該存在輸出的為位置不存在輸出,則可以確定日志節(jié)點的內(nèi)容出錯。具體的,該輸出判斷子模塊441具體可以用于檢測頂層日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;若頂層日志節(jié)點應(yīng)該存在輸出的位置不存在輸出,則檢測所述子日志節(jié)點應(yīng)該存在輸出的位置是否存在輸出;在所述子日志節(jié)點應(yīng)該存在輸出的位置不存在輸出時,確定所述頂層日志節(jié)點的內(nèi)容和所述子日志節(jié)點的內(nèi)容中途出錯;以及,在子日志節(jié)點應(yīng)該存在輸出的位置存在輸出時,確定所述頂層日志節(jié)點的內(nèi)容中途出錯。

出錯屬性設(shè)置模塊43具體可以用于為所述頂層日志節(jié)點和所述子日志節(jié)點配置出錯屬性;以及將所述頂層日志節(jié)點和所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值設(shè)置為初始值。其中,初始值可以是正常狀態(tài)值,也可以是出錯狀態(tài)值。

所述內(nèi)容出錯檢測模塊44,還可以包括:狀態(tài)修改子模塊442。

當(dāng)初始值為正常狀態(tài)值,狀態(tài)修改子模塊442可以用于在檢測到所述頂層日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值;以及,在檢測到子日志節(jié)點的內(nèi)容中途出錯時,將所述頂層日志節(jié)點和子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為出錯狀態(tài)值。

當(dāng)初始值為出錯狀態(tài)值,該狀態(tài)修改子模塊442可以用于在檢測到子日志節(jié)點的內(nèi)容沒有出錯時,將所述子日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值;以及在檢測到所述頂層日志節(jié)點的內(nèi)容和子日志節(jié)點的內(nèi)容沒有出錯時,將所述頂層日志節(jié)點的出錯屬性對應(yīng)狀態(tài)值修改為正常狀態(tài)值。

該生成xml日志的裝置還可以包括排列模塊45。該排列模塊45可以用于各個所述子日志節(jié)點按照創(chuàng)建時間的先后順序進行排列。

本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。

以上對本申請所提供的一種生成xml日志的方法和裝置,進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1