一種日志信息的處理方法和裝置的制造方法
【專利摘要】本發(fā)明實施例提供了一種日志信息的處理方法和裝置,以解決無法分析隨機偶發(fā)性狀況的問題。所述的方法包括:在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出;所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新;第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,其中,所述第二進程用于對第一進程進行監(jiān)控;所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。在運行過程中動態(tài)改變?nèi)罩拘畔⒂涗浐洼敵龅膬?nèi)容,以通過動態(tài)輸出日志實現(xiàn)對隨機偶發(fā)性問題的分析。
【專利說明】
一種日志信息的處理方法和裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種日志信息的處理方法和一種日志信息的處理裝置。
【背景技術(shù)】
[0002]在軟件系統(tǒng)的開發(fā)過程中,系統(tǒng)越龐大和復(fù)雜,出現(xiàn)問題的概率就會呈現(xiàn)非線性的增長,此時日志(log)信息對于問題的定位和分析解決起著至關(guān)重要的作用,尤其是軟件系統(tǒng)成為產(chǎn)品的一部分被發(fā)布到用戶手中實際使用過程中時,用戶往往只能夠反應(yīng)問題的表面現(xiàn)象,要深入分析到問題的內(nèi)部原因還得依據(jù)現(xiàn)場保留的日志信息。從理論上講,日志信息越詳細越好,但是負面影響是消耗系統(tǒng)性能和占用系統(tǒng)存儲空間,因此,如何最大化日志信息的記錄和最小化日志信息的性能影響是一個追求的目標。
[0003]傳統(tǒng)的通過將日志信息功能模塊編譯進軟件運行系統(tǒng),程序啟動時讀取配置文件或者是啟動參數(shù)來確定哪些日志信息需要記錄和輸出,可以從一定程度上避免大量日志信息的性能消耗,同時挑選一些重要的信息予以記錄和輸出。但想改變?nèi)罩拘畔⒂涗浐洼敵龅膬?nèi)容時必須重新啟動程序,同時也不能在運行過程中動態(tài)改變?nèi)罩拘畔⒂涗浐洼敵龅膬?nèi)容,無法分析隨機偶發(fā)性問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例所要解決的技術(shù)問題是提供一種日志信息的處理方法,以解決無法分析隨機偶發(fā)性狀況的問題。
[0005]相應(yīng)的,本發(fā)明實施例還提供了一種日志信息的處理裝置,用以保證上述方法的實現(xiàn)及應(yīng)用。
[0006]為了解決上述問題,本發(fā)明實施例公開了一種日志信息的處理方法,所述的方法包括:在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出;所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新;第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,其中,所述第二進程用于對第一進程進行監(jiān)控;所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。
[0007]本發(fā)明實施例還公開了一種日志信息的處理裝置,所述的裝置包括:創(chuàng)建與注冊模塊,用于在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出;監(jiān)視模塊,用于所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新;配置模塊,用于第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,其中,所述第二進程用于對第一進程進行監(jiān)控;輸出模塊,用于所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。
[0008]與現(xiàn)有技術(shù)相比,本發(fā)明實施例包括以下優(yōu)點:
[0009]本申請?zhí)峁┑娜罩拘畔⒌奶幚矸椒ê脱b置,能夠在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),如果活動監(jiān)視變量出現(xiàn)異常就改變開關(guān)的開關(guān)量,使開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,輸出日志信息??梢栽谶\行過程中動態(tài)改變?nèi)罩拘畔⒂涗浐洼敵龅膬?nèi)容,以通過動態(tài)輸出日志實現(xiàn)對隨機偶發(fā)性問題的分析。
【附圖說明】
[0010]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0011]圖1是本發(fā)明的一種日志信息的處理方法實施例的步驟流程圖;
[0012]圖2是本發(fā)明的另一種日志信息的處理方法實施例的步驟流程圖;
[0013]圖3是本發(fā)明的一種日志信息的處理裝置實施例的結(jié)構(gòu)框圖;
[0014]圖4是本發(fā)明的另一種日志信息的處理裝置實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0015]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0016]本發(fā)明實施例的核心構(gòu)思之一在于,提供一種日志信息的處理方法和裝置,能夠在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),如果活動監(jiān)視變量出現(xiàn)異常就改變開關(guān)的開關(guān)量,使開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,輸出日志信息。可以在運行過程中動態(tài)改變?nèi)罩拘畔⒂涗浐洼敵龅膬?nèi)容,以通過動態(tài)輸出日志實現(xiàn)對隨機偶發(fā)性問題的分析。
[0017]實施例一
[0018]詳細介紹本發(fā)明實施例的日志信息的處理方法。
[0019]參照圖1,示出了本發(fā)明的一種日志信息的處理方法實施例的步驟流程圖,具體可以包括如下步驟:
[0020]步驟S102、在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出。
[0021]被監(jiān)控目標包括軟件、操作系統(tǒng)等計算機程序,被監(jiān)控目標在開發(fā)或使用過程中可能會出現(xiàn)一些問題,被監(jiān)控目標越龐大、復(fù)雜,出現(xiàn)問題的概率就會呈現(xiàn)非線性的增長。要深入分析問題的內(nèi)部原因,就需要確定被監(jiān)控目標在執(zhí)行過程中記錄的日志信息,即依據(jù)日志信息分析被監(jiān)控目標的問題。為了能夠盡量詳細的記錄日志信息,且盡量減少對系統(tǒng)性能的消耗以及對系統(tǒng)存儲空間的占用,本實施例在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并且注冊至少一個開關(guān)。其中,將開關(guān)設(shè)置在被監(jiān)控目標的一些關(guān)鍵位置,通過開關(guān)的開關(guān)量控制相應(yīng)位置日志輸入與否。并且基于活動監(jiān)視變量對應(yīng)變量值的變化反映被監(jiān)控目標中相應(yīng)功能模塊的運行情況?;顒颖O(jiān)視變量變化異常時,可以控制部分或全部開關(guān)開啟,進行日志輸出,但是各活動監(jiān)視變量對應(yīng)開啟的開關(guān)與實際需求相關(guān),如全部開啟,或者開啟與該活動監(jiān)視變量相關(guān)的位置的開關(guān),本發(fā)明實施例對此不做限定。
[0022]步驟S104、所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新。
[0023]被監(jiān)控目標包含至少一個進程,根據(jù)需求選定某個進程為第一進程,如將被監(jiān)控目標的主進程作為第一進程。被監(jiān)控目標中的第一進程在運行的過程中能夠?qū)崿F(xiàn)相應(yīng)的功能,每個功能可以通過相應(yīng)的操作步驟執(zhí)行來實現(xiàn),為了檢測各功能的操作步驟是否正常執(zhí)行,可以按照預(yù)置規(guī)則對該功能對應(yīng)的活動監(jiān)視變量的變量值進行更新,通過變量值確定步驟的執(zhí)行過程。
[0024]步驟S106、第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量。
[0025]第二進程可以是被監(jiān)控目標中的一個進程,也可以是在被監(jiān)控目標以外的一個單獨的進程。第二進程能夠?qū)Ρ槐O(jiān)控目標進行監(jiān)控,即第二進程對所述第一進程進行監(jiān)控,從而監(jiān)控活動監(jiān)視變量的變量值是否按照預(yù)置規(guī)則執(zhí)行更新,當活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,表征被監(jiān)控目標在運行過程中出現(xiàn)問題,第二進程可以通過控制開關(guān)的開啟和關(guān)閉來控制被監(jiān)控目標的日志的動態(tài)輸出,因此可以在確定被監(jiān)控目標的運行出現(xiàn)問題時,將全部或部分開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,從而控制日志輸出,以便于后續(xù)定位問題。
[0026]步驟S108、所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。
[0027]第一進程運行時執(zhí)行相應(yīng)模塊、功能的過程中會檢測在其位置處配置的開關(guān)是否開啟,若檢測到開關(guān)開啟即該開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量,則在該過程中輸出相應(yīng)的日志信息,從而通過開關(guān)量的變更可以動態(tài)調(diào)整被監(jiān)控目標中日志的輸出。
[0028]綜上所述,在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),能夠在活動監(jiān)視變量出現(xiàn)異常時改變開關(guān)的開關(guān)量,使開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,在被監(jiān)控目標運行的相應(yīng)過程時輸出日志信息。從而在運行過程中動態(tài)控制被監(jiān)控目標中日志信息記錄和輸出,能夠有效的對隨機偶發(fā)性問題進行記錄以便后續(xù)分析使用。
[0029]實施例二
[0030]詳細介紹本發(fā)明實施例的另一種日志信息的處理方法。
[0031]參照圖2,示出了本發(fā)明的另一種日志信息的處理方法實施例的步驟流程圖,具體可以包括如下步驟:
[0032]步驟S202、在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量。
[0033]為了能夠在被監(jiān)控目標的運行出現(xiàn)問題時控制日志輸出以定位問題,可以在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量,例如針對被監(jiān)控目標中某個功能或模塊實現(xiàn)的操作步驟創(chuàng)建活動監(jiān)視變量。其中創(chuàng)建活動監(jiān)視變量包括以下子步驟:
[0034]子步驟S20202、在被監(jiān)控目標的第一進程中創(chuàng)建活動監(jiān)視變量。
[0035]子步驟S20204、接收返回的所述活動監(jiān)視變量對應(yīng)的第一內(nèi)存地址。
[0036]子步驟S20206、所述第一內(nèi)存地址中配置所述活動監(jiān)視變量的變量值。
[0037]本實施例中,可以通過相應(yīng)的應(yīng)用程序編程接口(Applicat1n ProgrammingInterface, API)創(chuàng)建活動監(jiān)視變量。例如通過LogSw_RegSw創(chuàng)建活動監(jiān)視變量soft_watch_dogl,如配置 PVOID pSoftWatchDogVar = LogSw_RegSw ( “soft_watch_dogl”)。
[0038]為創(chuàng)建的活動監(jiān)視變量分配一個第一內(nèi)存地址,用于存儲活動監(jiān)視變量的變量值,接收所述活動監(jiān)視變量對應(yīng)的第一內(nèi)存地址,在第一內(nèi)存地址中配置所述活動監(jiān)視變量的變量值。其中,活動監(jiān)視變量能夠表征被監(jiān)控目標中功能的運行情況,因此其內(nèi)存地址所存儲的變量值是可變的。
[0039]步驟S204、在被監(jiān)控目標中注冊至少一個開關(guān)。
[0040]本實施例為了便于分析隨機偶發(fā)性問題,選擇在被監(jiān)控目標運行過程中動態(tài)控制日志的輸出。通過在被監(jiān)控目標的至少一個進程中注冊開關(guān),用于出現(xiàn)異常時控制日志信息的輸出。其中注冊開關(guān)具體可以包括以下子步驟:
[0041]子步驟S20402、在被監(jiān)控目標的至少一個進程中注冊開關(guān)。
[0042]子步驟S20404、接收返回的開關(guān)的開關(guān)名稱對應(yīng)的第二內(nèi)存地址。
[0043]子步驟S20406、所述第二內(nèi)存地址中配置邏輯量或整數(shù)量作為所述開關(guān)名稱對應(yīng)的開關(guān)量。
[0044]子步驟S20408、所述第二內(nèi)存地址中配置所述被監(jiān)控目標預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為所述開關(guān)名稱對應(yīng)的開關(guān)量,其中,所述數(shù)據(jù)結(jié)構(gòu)包含成員值。
[0045]本實施例中,同樣可以采用API如LogSw_RegSw創(chuàng)建開關(guān),在創(chuàng)建開關(guān)時創(chuàng)建相應(yīng)的開關(guān)名稱以及其他信息,如PVOID LogSw_RegSw(String strName)。開關(guān)用于控制日志信息輸出,可以控制一部分或者全部日志信息,可以基于對該開關(guān)的定義確定,例如,采用開關(guān)LogSw_All控制全部日志信息,開關(guān)LogSw_NetworkCommunicat1n、LogSw_I2cCommunicat1nStatus控制輸出部分日志信息。其中,開關(guān)輸出日志功能的有效性不依賴于被監(jiān)控目標的運行狀態(tài)或被監(jiān)控目標是否存在。
[0046]注冊每一個開關(guān)都有對應(yīng)的開關(guān)名稱,開關(guān)名稱可以用一個字符串表示,比如LogFile10可以為每一個開關(guān)名稱分配一個有效的第二內(nèi)存地址,該第二內(nèi)存地址中存儲該開關(guān)名稱對應(yīng)的開關(guān)量。若注冊某一開關(guān)名稱時該開關(guān)名稱已注冊,則可以直接返回已分配的第二內(nèi)存地址,可以基于該第二內(nèi)存地址內(nèi)存儲的開關(guān)量確定是否輸出日志。
[0047]在第二內(nèi)存地址中配置開關(guān)量,開關(guān)量可以被配置為邏輯量或整數(shù)量,針對邏輯量可以設(shè)置為O或I,也可以用FALSE或者TRUE等邏輯值表示,通過控制開關(guān)量控制日志信息的輸出,例如O或者FALSE代表不輸出日志信息,I或者TRUE代表輸出日志信息。而設(shè)置為整數(shù)量可以控制日志信息輸出的級別或是其他信息,比如設(shè)置為整數(shù)量包括I至7,開關(guān)量可以是I值7中任一值。
[0048]本發(fā)明實施例通過開關(guān)在被監(jiān)控目標運行過程出現(xiàn)異常時可以動態(tài)控制日志信息的輸出。但是有時會由于一些原因例如公共部分發(fā)生線程死鎖導(dǎo)致被監(jiān)控目標沒有輸出日志信息,此時為了能夠記錄當時被監(jiān)控目標的運行情況,從而分析出現(xiàn)異常的原因,可以將被監(jiān)控目標的重要數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為某個開關(guān)名稱對應(yīng)的開關(guān)量,存儲在第二內(nèi)存地址中,數(shù)據(jù)結(jié)構(gòu)包含成員值。其中,由于內(nèi)存起始地址所占空間比較小,可以保存在第二內(nèi)存地址中。根據(jù)該內(nèi)存起始地址可獲取預(yù)定重要數(shù)據(jù)結(jié)構(gòu)的成員值。
[0049]又如,通過“LogSw Library”實現(xiàn)一些簡單操作的API接口,
[0050]Il注冊開關(guān)
[0051]PVOID LogSw_RegSw(String strName);
[0052]//取得開關(guān)個數(shù),個數(shù)返回到*pSwCnt。
[0053]INT LogSw_GetSwCnt (OUT INT*pSwCnt);
[0054]Η取得單個開關(guān)信息,輸入Switch的id,獲取其名稱和量值。
[0055]INT LogSw_GetSwInfo(IN INT iSwId,OUT LPSTR pszSwNameBuf, size_tsizeSwNameBuf,
[0056]OUT INT*pVal);
[0057]第一進程通常僅需使用LogSW_RegSW注冊開關(guān)和使用其返回的第二內(nèi)存地址指向的值進行判斷即可。
[0058]從而在注冊活動監(jiān)視變量和開關(guān)之后,能夠通過活動監(jiān)視變量和開關(guān)動態(tài)控制日志的輸出。
[0059]本實施例中,為被監(jiān)控目標的日志輸出提供了多種機制,例如通過日志輸出機制控制被監(jiān)控目標在重啟后是否保留先前的開關(guān)量等。因此可以在第一進程在初始化時對日志輸出機制進行選擇,包括以下兩個步驟:
[0060]步驟S206、當選擇第一日志輸出機制時,從指定存儲路徑對應(yīng)的文件中獲取所述開關(guān)名稱的開關(guān)量。
[0061]步驟S208、當選擇第二日志輸出機制時,將所述開關(guān)名稱的開關(guān)量配置為初始化值。
[0062]本實施例中,將第一日志輸出機制作為保留原數(shù)據(jù)的機制,選擇第一日志輸出機制時被監(jiān)控目標在重啟后仍然保留先前的開關(guān)量;而第二日志輸出機制為重啟后回歸到初始化的機制,即選擇第二日志輸出機制時被監(jiān)控目標在重啟后不會保留先前的開關(guān)量。
[0063]例如,進程之間的數(shù)據(jù)共享采用linux kernel提供的Shared Memory和FileMapping機制,其中,使用Shared Memory機制時,對Log Switch的狀態(tài)不做保存,需要應(yīng)用程序在初始化時設(shè)置初始狀態(tài)值,適合于默認為不記錄任何日志信息的場合;使用FileMapping機制,Log Switch的狀態(tài)數(shù)據(jù)會被保存在某一指定存儲路徑對應(yīng)的文件中,系統(tǒng)重啟后通過指定存儲路徑查找該文件后,可以基于文件使用上次運行的狀態(tài)。當然,針對FileMapping若制定存儲路徑為一臨時目錄,比如/tmp下,也能起到Shared Memory類似的臨時保存的效果。
[0064]將所述SharedMemory作為第二日志輸出機制,將Fi IeMapping作為第一日志輸出機制,則第一進程在初始化時通過選擇使用SharedMemory還是FileMapping(默認SharedMemory),既可以確定該被監(jiān)控目標在前一次的運行過程中配置的開關(guān)量是否有效,本次運行過程中是否記錄開關(guān)量等,如需要保留前次的開關(guān)量則使用FileMapping,反之,每次啟動后都初始化到原始設(shè)定的開關(guān)量則使用SharedMmeory。即在選擇第一日志輸出機制時,初始從指定存儲路徑對應(yīng)的文件中獲取所述開關(guān)名稱的開關(guān)量,運行過程中對于開關(guān)量的變更也會存儲到該文件中。而在選擇第二日志輸出機制時,初始將所述開關(guān)名稱的開關(guān)量配置為初始化值,而在其運行過程中對開關(guān)量的變更進行緩存,重啟后緩存的內(nèi)容會刪除不保留。
[0065]步驟S210、所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新。
[0066]被監(jiān)控目標中的第一進程在運行的過程中能夠?qū)崿F(xiàn)相應(yīng)的功能,每個功能可以通過相應(yīng)的操作步驟執(zhí)行來實現(xiàn),為了檢測各功能的操作步驟是否正常執(zhí)行,可以按照預(yù)置規(guī)則對該功能對應(yīng)的活動監(jiān)視變量的變量值進行更新,通過變量值確定步驟的執(zhí)行過程。例如,第一進程在執(zhí)行被監(jiān)控目標中功能時,依據(jù)功能的執(zhí)行步驟對其對應(yīng)的活動監(jiān)視變量進行更新,如執(zhí)行第一個步驟時,配置*pSoftWatchDogVar = 0,執(zhí)行第二個步驟時配置*pSoftWatchDogVar = 1,依次類推,如總共有6個步驟循環(huán)執(zhí)行,則監(jiān)視活動變量的變量值按照0->1->2->3->4->5->0->1…的規(guī)律依次更新。
[0067]步驟S212、第二進程檢測活動監(jiān)視變量的變量值是否按照預(yù)置規(guī)則執(zhí)行更新。
[0068]在第一進程執(zhí)行被監(jiān)控目標中各種功能時,第二進程可以對其監(jiān)控以便在發(fā)生偶發(fā)性問題時能夠及時控制日志輸出,因此,第二進程檢測活動監(jiān)視變量的變量值是否按照預(yù)置規(guī)則執(zhí)行更新,即通過對活動監(jiān)視變量的變量值的檢測,確定相應(yīng)功能是否按照步驟執(zhí)行。
[0069]若是,即第二進程檢測活動監(jiān)視變量的變量值按照預(yù)置規(guī)則執(zhí)行更新,表征功能的步驟執(zhí)行正常,可以返回步驟S212繼續(xù)檢測。
[0070]若否,即第二進程檢測活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新,表征相應(yīng)功能未正常執(zhí)行,可以執(zhí)行步驟S214。
[0071]步驟S214、將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量。
[0072]第二進程通過一個API獲得所述活動監(jiān)視變量的變量值,定期觀察其值的變化是否按照實現(xiàn)某功能的操作步驟來進行,其中,第二進程觀察活動監(jiān)視變量:
[0073]PVOID PSoftffatchDogVar = LogSw_RegSw( “soft_watch_dogl”);
[0074]if (I == ^pSoftffatchDogVar)
[0075]…
[0076]else if (2 == ^pSoftffatchDogVar)
[0077]...0
[0078]如上例循環(huán)更新的規(guī)律為:0->1->2->3->4->5->0->1...。例如在執(zhí)行完第二步驟時,變量值為1,此后應(yīng)該執(zhí)行第三步驟相應(yīng)變量值調(diào)整為2,但是由于某些問題導(dǎo)致變量值始終保持為1,即變量值沒有按照預(yù)置規(guī)則執(zhí)行更新,此時可能是被監(jiān)控目標出現(xiàn)問題,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量。若活動監(jiān)視變量的變量值沒有按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,例如開關(guān)量為邏輯量時,將開關(guān)量配置為I或者TRUE,開關(guān)量為整數(shù)量時,將開關(guān)量置為最大化調(diào)試信息的值。
[0079]例如,改變開關(guān)量的值可以通過如下方式實現(xiàn),INT LogSw_SetSw(String, strName, INT iValue)。又如通過提供一個實用工具程序,從命令行查詢和改變開關(guān)量的值,比如:LogSw - list,又如 LogSw〈Name> [〈Value〉]。
[0080]從而通過改變被監(jiān)控目標中各種開關(guān)的變量值控制日志輸出,其中,但是各異常活動監(jiān)視變量對應(yīng)配置開關(guān)與實際需求相關(guān),如全部配置為輸出日志對應(yīng)的開關(guān)量,或者配置與該活動監(jiān)視變量相關(guān)位置的開關(guān)為輸出日志對應(yīng)的開關(guān)量,以便于后續(xù)依據(jù)日志排查問題。
[0081]步驟S216、所述第一進程在運行時若檢測到所述開關(guān)為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。
[0082]第一進程運行時檢測開關(guān)的開關(guān)量,若檢測到所述開關(guān)為輸出日志對應(yīng)的開關(guān)量,被監(jiān)控目標輸出這些開關(guān)所控制的日志信息。根據(jù)輸出的日志信息就可以識別問題發(fā)生的局部范圍點。
[0083]本實施例中,第一進程對被監(jiān)控目標中開關(guān)的引用判斷不超過2個CPU指令,其中,通常情況下為一個if條件判斷語句,延伸到CPU指令就是一條條件判斷跳轉(zhuǎn)指令,使得這種性能消耗幾乎可以忽略不計。
[0084]本發(fā)明的一個可選實施例,當被監(jiān)控目標應(yīng)該輸出相應(yīng)的日志信息,卻沒有任何日志信息輸出時,還包括:
[0085]若被監(jiān)控目標沒有任何日志信息輸出,第二進程查找存儲預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址的開關(guān)名稱。讀取出所述開關(guān)名稱中的預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址。獲取該預(yù)定數(shù)據(jù)結(jié)構(gòu)的成員值,得到被監(jiān)控目標的相關(guān)信息。將所述被監(jiān)控目標的相關(guān)信息作為日志
?目息O
[0086]若被監(jiān)控目標沒有任何日志信息輸出,很可能是問題發(fā)生在公共部分例如線程死鎖。由于之前已經(jīng)把被監(jiān)控目標重要預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為某個開關(guān)名稱對應(yīng)的開關(guān)量。因此第二進程可以查找存儲預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址的開關(guān)名稱。
[0087]根據(jù)開關(guān)名稱到相應(yīng)的第二內(nèi)存地址中讀取出所述開關(guān)名稱中的預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址。根據(jù)上述內(nèi)存起始地址獲取該預(yù)定數(shù)據(jù)結(jié)構(gòu)的成員值,得到被監(jiān)控目標的相關(guān)信息。上述被監(jiān)控目標的相關(guān)信息代表被監(jiān)控目標的運行情況,將所述被監(jiān)控目標的相關(guān)信息作為日志信息。
[0088]本發(fā)明的另一個可選實施例,所述若被監(jiān)控目標沒有任何日志信息輸出,修改指定數(shù)據(jù)結(jié)構(gòu)的成員值或重啟被監(jiān)控目標,輸出日志信息。
[0089]若被監(jiān)控目標沒有任何日志信息輸出,很可能問題發(fā)生在公共部分例如線程死鎖。此時也可以對第一進程進行追蹤,確定出現(xiàn)問題的數(shù)據(jù)結(jié)構(gòu)修改其成員值。從而解決公共部分的問題如線程死鎖等問題使得被監(jiān)控目標運行,再按上述步驟正常輸出日志信息。
[0090]通過上述步驟獲取到日志信息后,可以根據(jù)日志信息分析被監(jiān)控目標的問題,從而盡力解決非調(diào)試狀態(tài)下的錯誤排查和處理。
[0091 ] 綜上所述,通過預(yù)先把被監(jiān)控目標預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為一個開關(guān)名稱的開關(guān)量,若被監(jiān)控目標沒有輸出日志信息,第二進程可以追蹤被監(jiān)控目標,讀取出指定的數(shù)據(jù)結(jié)構(gòu),得到被監(jiān)控目標相關(guān)信息作為日志信息。并且可以修改結(jié)構(gòu)體的成員值,或者重啟被監(jiān)控目標,解決被監(jiān)控目標死鎖,從而使被監(jiān)控目標可以正常輸出日志信息。
[0092]需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實施例并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明實施例,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本發(fā)明實施例所必須的。
[0093]參照圖3,示出了本發(fā)明一種日志信息的處理裝置實施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:
[0094]創(chuàng)建與注冊模塊302,監(jiān)視模塊304,配置模塊306,以及,輸出模塊308。
[0095]下面分別介紹各模塊的功能以及各模塊之間的關(guān)系。
[0096]創(chuàng)建與注冊模塊302,用于在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出。
[0097]監(jiān)視模塊304,用于所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新。
[0098]配置模塊306,用于第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,其中,所述第二進程用于對第一進程進行監(jiān)控。
[0099]輸出模塊308,用于所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。
[0100]綜上所述,在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),能夠在活動監(jiān)視變量出現(xiàn)異常時改變開關(guān)的開關(guān)量,使開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,在被監(jiān)控目標運行的相應(yīng)過程時輸出日志信息。從而在運行過程中動態(tài)控制被監(jiān)控目標中日志信息記錄和輸出,能夠有效的對隨機偶發(fā)性問題進行記錄以便后續(xù)分析使用。
[0101]參照圖4,示出了本發(fā)明另一種日志信息的處理裝置實施例的結(jié)構(gòu)框圖。
[0102]創(chuàng)建與注冊模塊302,用于在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出。
[0103]本發(fā)明一個可選實施例中,所述創(chuàng)建與注冊模塊302包括:創(chuàng)建子模塊3022和注冊子模塊3024,其中:
[0104]所述創(chuàng)建子模塊3022,用于在被監(jiān)控目標的第一進程中創(chuàng)建活動監(jiān)視變量;接收返回的所述活動監(jiān)視變量對應(yīng)的第一內(nèi)存地址;所述第一內(nèi)存地址中配置所述活動監(jiān)視變量的變量值。
[0105]所述注冊子模塊3024,用于在被監(jiān)控目標的至少一個進程中注冊開關(guān);接收返回的開關(guān)名稱對應(yīng)的第二內(nèi)存地址;所述第二內(nèi)存地址中配置邏輯量或整數(shù)量作為所述開關(guān)名稱對應(yīng)的開關(guān)量。
[0106]所述注冊子模塊3024,還用于所述第二內(nèi)存地址中配置所述被監(jiān)控目標預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為所述開關(guān)名稱對應(yīng)的開關(guān)量,其中,所述數(shù)據(jù)結(jié)構(gòu)包含成員值。
[0107]選擇模塊310,用于所述第一進程在初始化時選擇日志輸出機制;當選擇第一日志輸出機制時,從指定存儲路徑對應(yīng)的文件中獲取所述開關(guān)名稱的開關(guān)量;以及當選擇第二曰志輸出機制時,將所述開關(guān)名稱的開關(guān)量配置為初始化值。
[0108]監(jiān)視模塊304,用于所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新。
[0109]配置模塊306,用于第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量。
[0110]輸出模塊308,用于所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。
[0111]本發(fā)明的一個可選實施例中,所述裝置還包括第一調(diào)整模塊312以及第二調(diào)整模塊314,其中:
[0112]第一調(diào)整模塊,用于若被監(jiān)控目標沒有任何日志信息輸出,第二進程查找存儲預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址的開關(guān)名稱;讀取出所述開關(guān)名稱中的預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址;獲取該預(yù)定數(shù)據(jù)結(jié)構(gòu)的成員值,得到被監(jiān)控目標的相關(guān)信息;將所述被監(jiān)控目標的相關(guān)信息作為日志信息。
[0113]第二調(diào)整模塊314,用于所述若被監(jiān)控目標沒有任何日志信息輸出,修改指定數(shù)據(jù)結(jié)構(gòu)的成員值或重啟被監(jiān)控目標,輸出日志信息。
[0114]綜上所述,通過預(yù)先把被監(jiān)控目標預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為一個開關(guān)名稱的開關(guān)量,若被監(jiān)控目標沒有輸出日志信息,第二進程可以追蹤被監(jiān)控目標,讀取出指定的數(shù)據(jù)結(jié)構(gòu),得到被監(jiān)控目標相關(guān)信息作為日志信息。并且可以修改結(jié)構(gòu)體的成員值,或者重啟被監(jiān)控目標,解決被監(jiān)控目標死鎖,從而使被監(jiān)控目標可以正常輸出日志信息。
[0115]對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
[0116]本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0117]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實施例的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本發(fā)明實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0118]本發(fā)明實施例是參照根據(jù)本發(fā)明實施例的方法、終端設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0119]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0120]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計算機或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0121]盡管已描述了本發(fā)明實施例的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明實施例范圍的所有變更和修改。
[0122]最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
[0123]以上對本發(fā)明所提供的一種日志信息的處理方法和一種日志信息的處理裝置,進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
【主權(quán)項】
1.一種日志信息的處理方法,其特征在于,所述的方法包括: 在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出; 所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新; 第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,其中,所述第二進程用于對第一進程進行監(jiān)控; 所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量的步驟包括: 在被監(jiān)控目標的第一進程中創(chuàng)建活動監(jiān)視變量; 接收返回的所述活動監(jiān)視變量對應(yīng)的第一內(nèi)存地址; 所述第一內(nèi)存地址中配置所述活動監(jiān)視變量的變量值。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在被監(jiān)控目標中注冊至少一個開關(guān)的步驟包括: 在被監(jiān)控目標的至少一個進程中注冊開關(guān); 接收返回的開關(guān)名稱對應(yīng)的第二內(nèi)存地址; 所述第二內(nèi)存地址中配置邏輯量或整數(shù)量作為所述開關(guān)名稱對應(yīng)的開關(guān)量。4.根據(jù)權(quán)利要求3所述的方法,所述接收返回的開關(guān)的開關(guān)名稱對應(yīng)的第二內(nèi)存地址之后,還包括: 所述第二內(nèi)存地址中配置所述被監(jiān)控目標預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為所述開關(guān)名稱對應(yīng)的開關(guān)量,其中,所述數(shù)據(jù)結(jié)構(gòu)包含成員值。5.根據(jù)權(quán)利要求4所述的方法,還包括: 若被監(jiān)控目標沒有任何日志信息輸出,第二進程查找存儲預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址的開關(guān)名稱; 讀取出所述開關(guān)名稱中的預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址; 獲取該預(yù)定數(shù)據(jù)結(jié)構(gòu)的成員值,得到被監(jiān)控目標的相關(guān)信息; 將所述被監(jiān)控目標的相關(guān)信息作為日志信息。6.根據(jù)權(quán)利要求5所述的方法,還包括: 所述若被監(jiān)控目標沒有任何日志信息輸出,修改指定數(shù)據(jù)結(jié)構(gòu)的成員值或重啟被監(jiān)控目標,輸出日志信息。7.根據(jù)權(quán)利要求4所述的方法,還包括: 所述第一進程在初始化時選擇日志輸出機制; 當選擇第一日志輸出機制時,從指定存儲路徑對應(yīng)的文件中獲取所述開關(guān)名稱的開關(guān)量; 當選擇第二日志輸出機制時,將所述開關(guān)名稱的開關(guān)量配置為初始化值。8.—種日志信息的處理裝置,其特征在于,所述的裝置包括: 創(chuàng)建與注冊模塊,用于在被監(jiān)控目標中創(chuàng)建活動監(jiān)視變量并注冊至少一個開關(guān),其中,所述開關(guān)用于控制日志輸出; 監(jiān)視模塊,用于所述被監(jiān)控目標的第一進程按照預(yù)置規(guī)則對所述活動監(jiān)視變量的變量值進行更新; 配置模塊,用于第二進程檢測到所述活動監(jiān)視變量的變量值未按照預(yù)置規(guī)則執(zhí)行更新時,將所述開關(guān)的開關(guān)量配置為輸出日志對應(yīng)的開關(guān)量,其中,所述第二進程用于對第一進程進行監(jiān)控; 輸出模塊,用于所述第一進程在運行時若檢測到所述開關(guān)的開關(guān)量為輸出日志對應(yīng)的開關(guān)量時,被監(jiān)控目標輸出相應(yīng)的日志信息。9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述創(chuàng)建與注冊模塊,包括: 創(chuàng)建子模塊,用于在被監(jiān)控目標的第一進程中創(chuàng)建活動監(jiān)視變量;接收返回的所述活動監(jiān)視變量對應(yīng)的第一內(nèi)存地址;所述第一內(nèi)存地址中配置所述活動監(jiān)視變量的變量值。10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述創(chuàng)建與注冊模塊,包括: 注冊子模塊,用于在被監(jiān)控目標的至少一個進程中注冊開關(guān);接收返回的開關(guān)名稱對應(yīng)的第二內(nèi)存地址;所述第二內(nèi)存地址中配置邏輯量或整數(shù)量作為所述開關(guān)名稱對應(yīng)的開關(guān)量。11.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述注冊子模塊,還用于所述第二內(nèi)存地址中配置所述被監(jiān)控目標預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址作為所述開關(guān)名稱對應(yīng)的開關(guān)量,其中,所述數(shù)據(jù)結(jié)構(gòu)包含成員值。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括: 第一調(diào)整模塊,若被監(jiān)控目標沒有任何日志信息輸出,第二進程查找存儲預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址的開關(guān)名稱;讀取出所述開關(guān)名稱中的預(yù)定數(shù)據(jù)結(jié)構(gòu)的內(nèi)存起始地址;獲取該預(yù)定數(shù)據(jù)結(jié)構(gòu)的成員值,得到被監(jiān)控目標的相關(guān)信息;將所述被監(jiān)控目標的相關(guān)信息作為日志信息。13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,還包括: 第二調(diào)整模塊,用于所述若被監(jiān)控目標沒有任何日志信息輸出,修改指定數(shù)據(jù)結(jié)構(gòu)的成員值或重啟被監(jiān)控目標,輸出日志信息。14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括: 選擇模塊,用于所述第一進程在初始化時選擇日志輸出機制;當選擇第一日志輸出機制時,從指定存儲路徑對應(yīng)的文件中獲取所述開關(guān)名稱的開關(guān)量;以及當選擇第二日志輸出機制時,將所述開關(guān)名稱的開關(guān)量配置為初始化值。
【文檔編號】G06F11/34GK105975383SQ201510626751
【公開日】2016年9月28日
【申請日】2015年9月28日
【發(fā)明人】肖榮權(quán)
【申請人】樂視致新電子科技(天津)有限公司