本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種日志分析方法及系統(tǒng)。
背景技術(shù):
目前,在各個(gè)領(lǐng)域中程序規(guī)模越來越龐大。因此,對(duì)程序的穩(wěn)定性,更新及時(shí)性等要求越來越高。對(duì)應(yīng)的程序日志庫非常多,比如glog,用于對(duì)程序的執(zhí)行進(jìn)行記錄。日志庫可以幫助程序員和測(cè)試人員發(fā)現(xiàn)和解決程序bug。
由于日志庫僅具有單純的記錄功能,且日志庫中的日志信息數(shù)量特別大,因此程序員和測(cè)試人員在大量的日志信息中尋找程序出現(xiàn)bug的原因時(shí)工作量也相當(dāng)大;查詢?nèi)罩举M(fèi)時(shí)費(fèi)力,且目前日志記錄的日志信息往往不完整,很多時(shí)候,不能根據(jù)日志信息準(zhǔn)確發(fā)現(xiàn)bug原因。導(dǎo)致許多程序不愿意添加日志信息。
如何,提高日志信息的利用率,使得程序員和測(cè)試人員能夠快速獲取日志分析結(jié)果,減輕程序員和測(cè)試人員分析日志信息的工作量,是本領(lǐng)域技術(shù)人員需要解決的技術(shù)問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種日志分析方法及系統(tǒng),改進(jìn)了舊有的只有單純的日志信息記錄功能,增加了日志分析功能,讓日志信息更加清晰,完整,方便查詢,極大的減輕了開發(fā)人員和測(cè)試人員的負(fù)擔(dān)。
為解決上述技術(shù)問題,本發(fā)明提供一種日志分析方法,包括:
調(diào)用日志生成接口輸出日志文件;
讀取所述日志文件,并利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置;
根據(jù)所述源代碼位置,利用函數(shù)進(jìn)入標(biāo)記和函數(shù)退出標(biāo)記記錄對(duì)應(yīng)的程序執(zhí)行流程,并讀取函數(shù)執(zhí)行耗時(shí)對(duì)應(yīng)數(shù)值作為程序執(zhí)行效率;
根據(jù)設(shè)定的輸出字段,獲取所述執(zhí)行流程中所述輸出字段對(duì)應(yīng)數(shù)值信息。
可選的,所述調(diào)用日志生成接口輸出日志文件,包括:
按照預(yù)定日志格式封裝日志生成接口;其中,所述預(yù)定日志格式包含程序名、類名、函數(shù)名、代碼行數(shù)、函數(shù)進(jìn)入標(biāo)記、函數(shù)退出標(biāo)記、函數(shù)執(zhí)行耗時(shí)、日志等級(jí)以及輸出字段;
調(diào)用所述日志生成接口輸出具有所述預(yù)定日志格式的日志文件。
可選的,讀取所述日志文件,包括:
利用操作系統(tǒng)應(yīng)用程序編程接口將所述日志文件輸出到程序編輯器的輸出窗口;和/或,
利用庫函數(shù)將所述日志文件輸出到本體日志文件;和/或,
利用庫函數(shù)將所述日志文件輸出到控制臺(tái);和/或,
利用tcp協(xié)議將所述日志文件輸出到網(wǎng)絡(luò)上的指定終端;和/或,
利用串行通訊端口將所述日志文件輸出到串口設(shè)備。
可選的,所述利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置,包括:
通過所述程序名、所述類名、所述函數(shù)名以及所述代碼行數(shù)定位程序?qū)?yīng)的源代碼位置。
可選的,所述根據(jù)設(shè)定的輸出字段,獲取所述執(zhí)行流程中所述輸出字段對(duì)應(yīng)數(shù)值信息,包括:
根據(jù)設(shè)定的輸出字段,獲取所述執(zhí)行流程中所述輸出字段對(duì)應(yīng)數(shù)值信息;其中,所述輸出字段包括參數(shù)值字段、返回值字段、錯(cuò)誤碼字段、錯(cuò)誤信息字段以及調(diào)試信息字段。
可選的,獲取所述執(zhí)行流程中所述輸出字段對(duì)應(yīng)數(shù)值信息之后,還包括:
當(dāng)所述錯(cuò)誤碼字段或所述錯(cuò)誤信息字段存在對(duì)應(yīng)數(shù)值信息時(shí),按照預(yù)定路徑發(fā)出報(bào)警信息。
可選的,本申請(qǐng)還包括:
根據(jù)設(shè)定的篩選信息對(duì)輸出的日志文件進(jìn)行篩選。
本申請(qǐng)還提供一種日志分析系統(tǒng),包括:
輸出模塊,用于調(diào)用日志生成接口輸出日志文件;
讀取模塊,用于讀取所述日志文件;
定位模塊,用于利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置;
第一信息獲取模塊,用于根據(jù)所述源代碼位置,利用函數(shù)進(jìn)入標(biāo)記和函數(shù)退出標(biāo)記記錄對(duì)應(yīng)的程序執(zhí)行流程,并讀取函數(shù)執(zhí)行耗時(shí)對(duì)應(yīng)數(shù)值作為程序執(zhí)行效率;
第二信息獲取模塊,用于根據(jù)設(shè)定的輸出字段,獲取所述執(zhí)行流程中所述輸出字段對(duì)應(yīng)數(shù)值信息。
可選的,所述讀取模塊,包括:
第一讀取單元,用于利用操作系統(tǒng)應(yīng)用程序編程接口將所述日志文件輸出到程序編輯器的輸出窗口;和/或,
第二讀取單元,用于利用庫函數(shù)將所述日志文件輸出到本體日志文件;和/或,
第三讀取單元,用于利用庫函數(shù)將所述日志文件輸出到控制臺(tái);和/或,
第四讀取單元,用于利用tcp協(xié)議將所述日志文件輸出到網(wǎng)絡(luò)上的指定終端;和/或,
第五讀取單元,用于利用串行通訊端口將所述日志文件輸出到串口設(shè)備。
可選的,本申請(qǐng)還包括:
篩選模塊,用于根據(jù)設(shè)定的篩選信息對(duì)輸出的日志文件進(jìn)行篩選。
本發(fā)明所提供的一種日志分析方法,包括:調(diào)用日志生成接口輸出日志文件;讀取日志文件,并利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置;根據(jù)源代碼位置,利用函數(shù)進(jìn)入標(biāo)記和函數(shù)退出標(biāo)記記錄對(duì)應(yīng)的程序執(zhí)行流程,并讀取函數(shù)執(zhí)行耗時(shí)對(duì)應(yīng)數(shù)值作為程序執(zhí)行效率;根據(jù)設(shè)定的輸出字段,獲取執(zhí)行流程中輸出字段對(duì)應(yīng)數(shù)值信息;
可見,改進(jìn)了舊有的只有單純的日志信息記錄功能,增加了日志分析功能,能夠定位程序?qū)?yīng)的源代碼位置,獲取程序執(zhí)行流程以及程序執(zhí)行效率,并能夠得到設(shè)定的輸出字段對(duì)應(yīng)數(shù)值信息;通過這些數(shù)據(jù)信息的自動(dòng)獲取讓日志信息更加清晰,完整,方便查詢,極大的減輕了開發(fā)人員和測(cè)試人員的負(fù)擔(dān)。本發(fā)明還提供了一種日志分析系統(tǒng),具有上述有益效果,在此不再贅述。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例所提供的一種日志分析方法的流程圖;
圖2為本發(fā)明實(shí)施例所提供的一種日志分析系統(tǒng)的結(jié)構(gòu)框圖。
具體實(shí)施方式
本發(fā)明的核心是提供一種日志分析方法及系統(tǒng),改進(jìn)了舊有的只有單純的日志信息記錄功能,增加了日志分析功能,讓日志信息更加清晰,完整,方便查詢,極大的減輕了開發(fā)人員和測(cè)試人員的負(fù)擔(dān)。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參考圖1,圖1為本發(fā)明實(shí)施例所提供的一種日志分析方法的流程圖;該日志分析方法可以包括:
s100、調(diào)用日志生成接口輸出日志文件;
具體的,該步驟的不要目的是輸出日志文件,這里可以是輸出全部的日志文件,后續(xù)步驟再對(duì)該輸出的日志文件進(jìn)行分析處理,或者對(duì)該輸出日志進(jìn)行篩選后再進(jìn)行分析處理;也可以是輸出指定的日志文件,即直接對(duì)原始日志文件進(jìn)行篩選,輸出有用的日志文件,后續(xù)再對(duì)該日志文件進(jìn)行分析處理,以提高日志分析的效率,避免硬件計(jì)算資源的浪費(fèi)。例如,通過設(shè)定過濾字段,得到用戶需要關(guān)注的信息,過濾不需要關(guān)注的信息。
優(yōu)選的,為了后續(xù)進(jìn)行日志分析時(shí),可以快速獲取準(zhǔn)確的日志信息,該步驟可以調(diào)整日志文件的輸出格式,即利用日志生成接口輸出具有一定格式的日志文件,本實(shí)施例并不對(duì)具體的格式信息進(jìn)行限定,用戶可以根據(jù)自身程序應(yīng)用環(huán)境以及使用日志信息時(shí)的經(jīng)驗(yàn)進(jìn)行設(shè)定。例如這里的格式信息可以包含程序名、類名、函數(shù)名、代碼行數(shù)、函數(shù)進(jìn)入標(biāo)記、函數(shù)退出標(biāo)記、函數(shù)執(zhí)行耗時(shí)、日志等級(jí)以及輸出字段等。例如可以使用c++語言按照設(shè)定的日志格式封裝成日志生成接口(日志生成庫),在應(yīng)用程序代碼里面調(diào)用日志生成接口生成日志。具體的,調(diào)用日志生成接口輸出日志文件可以包括:
按照預(yù)定日志格式封裝日志生成接口;其中,預(yù)定日志格式包含程序名、類名、函數(shù)名、代碼行數(shù)、函數(shù)進(jìn)入標(biāo)記、函數(shù)退出標(biāo)記、函數(shù)執(zhí)行耗時(shí)、日志等級(jí)以及輸出字段;
調(diào)用日志生成接口輸出具有預(yù)定日志格式的日志文件。
具體的,按照定義的日志格式,封裝成日志生成接口;調(diào)用日志生成接口生成日志文件(即這里的日志生成接口根據(jù)原始日志文件生成日志文件即認(rèn)為日志文件為該日志生成接口的輸出)。
s110、讀取日志文件,并利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置;
具體的,讀取日志文件即讀取輸出的日志文件。讀取輸出的日志文件可以根據(jù)用戶后續(xù)使用的方便通過網(wǎng)絡(luò)等接收或讀取到任意設(shè)定位置或設(shè)備。即日志文件可以輸出到本體文件和/或通過網(wǎng)絡(luò)傳輸?shù)搅硪粋€(gè)終端??蛇x的,讀取日志文件可以包括:
利用操作系統(tǒng)應(yīng)用程序編程接口將日志文件輸出到程序編輯器的輸出窗口;例如過操作系統(tǒng)api輸出到ide(程序編輯器)的輸出窗口。和/或,
利用庫函數(shù)將日志文件輸出到本體日志文件;例如通過c++庫函數(shù)輸出到本地日志文件。和/或,
利用庫函數(shù)將日志文件輸出到控制臺(tái);例如通過c++庫函數(shù)輸出到控制臺(tái)。和/或,
利用tcp協(xié)議將日志文件輸出到網(wǎng)絡(luò)上的指定終端;即通過tcp協(xié)議輸出到網(wǎng)絡(luò)上的其他接收終端。和/或,
利用串行通訊端口將日志文件輸出到串口設(shè)備;例如通過com口輸出到串口設(shè)備。
具體的,用戶可以根據(jù)自身的實(shí)際需求選擇相應(yīng)的讀取方式。即本實(shí)施例可以同時(shí)提供至少一種上述讀取方式。本實(shí)施例讀取方式的組合并不進(jìn)行限定。
可選的,在讀取到日志文件后還可以通過設(shè)定過濾字段,得到用戶需要關(guān)注的信息,過濾不需要關(guān)注的信息。例如通過設(shè)置相應(yīng)參數(shù),過濾掉不需要關(guān)注的信息的方法可以包括:通過設(shè)定具體的類名、函數(shù)名、關(guān)鍵字和日志等級(jí),篩選出設(shè)定符合設(shè)定要求的日志文件(即符合要求的日志信息)。通過這樣的篩選過程可以進(jìn)一步提高后續(xù)日志分析的效率。
利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置即根據(jù)用戶需求確定目標(biāo)代碼在源代碼中的位置。本實(shí)施例并不對(duì)具體的函數(shù)標(biāo)識(shí)進(jìn)行限定,例如函數(shù)標(biāo)識(shí)可以是程序名、函數(shù)名等可以表示函數(shù)的標(biāo)識(shí)。具體可以是通過程序名、類名、函數(shù)名以及代碼行數(shù)定位程序?qū)?yīng)的源代碼位置。
s120、根據(jù)源代碼位置,利用函數(shù)進(jìn)入標(biāo)記和函數(shù)退出標(biāo)記記錄對(duì)應(yīng)的程序執(zhí)行流程,并讀取函數(shù)執(zhí)行耗時(shí)對(duì)應(yīng)數(shù)值作為程序執(zhí)行效率;
具體的,該步驟可以通過函數(shù)進(jìn)入標(biāo)記、函數(shù)退出標(biāo)記和函數(shù)執(zhí)行耗時(shí)得到程序執(zhí)行流程和程序執(zhí)行效率。這里的程序執(zhí)行效率即為一個(gè)程序的運(yùn)行性能。
s130、根據(jù)設(shè)定的輸出字段,獲取執(zhí)行流程中輸出字段對(duì)應(yīng)數(shù)值信息。
具體的,本實(shí)施例并不限定輸出字段的具體內(nèi)容,例如輸出字段可以是參數(shù)值字段、返回值字段、錯(cuò)誤碼字段、錯(cuò)誤信息字段以及調(diào)試信息字段等。根據(jù)程序所應(yīng)用的領(lǐng)域以及要解決的程序的實(shí)際問題進(jìn)行設(shè)置和修改??蛇x的,根據(jù)設(shè)定的輸出字段,獲取執(zhí)行流程中輸出字段對(duì)應(yīng)數(shù)值信息可以包括:
根據(jù)設(shè)定的輸出字段,獲取執(zhí)行流程中輸出字段對(duì)應(yīng)數(shù)值信息;其中,輸出字段包括參數(shù)值字段、返回值字段、錯(cuò)誤碼字段、錯(cuò)誤信息字段以及調(diào)試信息字段。即根據(jù)用戶的自定義輸出字段,得到程序執(zhí)行過程中的信息。
通過本實(shí)施例的分析過程,程序bug(一個(gè)錯(cuò)誤的日志信息),程序運(yùn)行流程和狀態(tài)(日志記錄了函數(shù)的調(diào)用流程即程序執(zhí)行流程)。從日志信息里,可以得到函數(shù)的執(zhí)行時(shí)間,錯(cuò)誤信息在源代碼中的位置。函數(shù)參數(shù)傳遞的值,函數(shù)返回值程序執(zhí)行流程。程序員或者測(cè)試人員可以根據(jù)提取出的信息快速準(zhǔn)確的對(duì)程序的問題進(jìn)行定位分析,找到錯(cuò)誤原因,提高工作效率。
用戶設(shè)置相應(yīng)的參數(shù)對(duì)得到的源代碼位置、程序執(zhí)行流程、程序執(zhí)行效率以及輸出字段對(duì)應(yīng)數(shù)值信息進(jìn)行進(jìn)一步的篩選,過濾掉不需要關(guān)注的信息。進(jìn)一步上述幾處進(jìn)行篩選的過程可以都進(jìn)行,也可以僅在一處進(jìn)行篩選,本實(shí)施例對(duì)此并不進(jìn)行限定。即用戶可以在每一個(gè)步驟處自定義過濾條件。只關(guān)心某一個(gè)模塊,某一個(gè)cpp文件或者某一個(gè)函數(shù)的執(zhí)行情況,其他的日志信息被屏蔽。也可以運(yùn)行完整的程序,得到完整的日志文件,統(tǒng)計(jì)出程序質(zhì)量(程序錯(cuò)誤數(shù)量,執(zhí)行效率)。根據(jù)不同的適用場(chǎng)景輸出到不同的目標(biāo)上。
進(jìn)一步,用戶可以根據(jù)得到的源代碼位置、程序執(zhí)行流程、程序執(zhí)行效率以及輸出字段對(duì)應(yīng)數(shù)值信息快速確定程序問題,節(jié)省用戶從海量日志信息中篩選出有用信息的時(shí)間。進(jìn)一步可以對(duì)分析得到的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,得到對(duì)應(yīng)程序的質(zhì)量報(bào)告。這樣程序員或者測(cè)試人員即可以通過質(zhì)量報(bào)告得到程序出現(xiàn)bug的原因,進(jìn)而可以快速做出相應(yīng)的調(diào)整。進(jìn)一步通過網(wǎng)絡(luò)實(shí)時(shí)接收或者從本地文件讀取到已保存的日志文件,根據(jù)預(yù)定的日志文件格式,分析日志。為了提高技術(shù)人員獲取關(guān)鍵信息的效率或者不要遺漏關(guān)鍵信息,可以用不同的顏色或者提示,展示程序代碼中的缺陷和bug?;蛘弋?dāng)錯(cuò)誤碼字段或錯(cuò)誤信息字段存在對(duì)應(yīng)數(shù)值信息時(shí),按照預(yù)定路徑發(fā)出報(bào)警信息。以便技術(shù)人員可以及時(shí)獲取程序的錯(cuò)誤信息,盡快對(duì)程序進(jìn)行修正。
基于上述技術(shù)方案,本發(fā)明實(shí)施例提的日志分析方法,除了能夠進(jìn)行日志文件生成以外,還能對(duì)生成的日志文件進(jìn)行分析,減輕了開發(fā)人員和測(cè)試人員的負(fù)擔(dān),智能化程度較高。在進(jìn)行日志分析過程中,能夠針對(duì)實(shí)際需求,進(jìn)行日志文件過濾,篩選出符合自己要求的日志信息,具備很強(qiáng)的實(shí)用性。且能夠?qū)υ闯绦虻膱?zhí)行效率、執(zhí)行流程、log等級(jí)、程序名、類名、函數(shù)名、代碼行數(shù)、參數(shù)值、返回值、錯(cuò)誤碼和錯(cuò)誤信息等都進(jìn)行分析,功能多樣全面,為后續(xù)程序問題的解決提供了有力的數(shù)據(jù)支撐,大大提高了開發(fā)人員和測(cè)試人員的工作效率,及時(shí)性可靠性都能夠得到保證。
下面對(duì)本發(fā)明實(shí)施例提供的日志分析系統(tǒng)進(jìn)行介紹,下文描述的日志分析系統(tǒng)與上文描述的日志分析方法可相互對(duì)應(yīng)參照。
請(qǐng)參考圖2,圖2為本發(fā)明實(shí)施例所提供的一種日志分析系統(tǒng)的結(jié)構(gòu)框圖;該系統(tǒng)可以包括:
輸出模塊100,用于調(diào)用日志生成接口輸出日志文件;
讀取模塊200,用于讀取日志文件;
定位模塊300,用于利用設(shè)定的函數(shù)標(biāo)識(shí)定位程序?qū)?yīng)的源代碼位置;
第一信息獲取模塊400,用于根據(jù)源代碼位置,利用函數(shù)進(jìn)入標(biāo)記和函數(shù)退出標(biāo)記記錄對(duì)應(yīng)的程序執(zhí)行流程,并讀取函數(shù)執(zhí)行耗時(shí)對(duì)應(yīng)數(shù)值作為程序執(zhí)行效率;
第二信息獲取模塊500,用于根據(jù)設(shè)定的輸出字段,獲取執(zhí)行流程中輸出字段對(duì)應(yīng)數(shù)值信息。
基于上述實(shí)施例,讀取模塊200包括:
第一讀取單元,用于利用操作系統(tǒng)應(yīng)用程序編程接口將日志文件輸出到程序編輯器的輸出窗口;和/或,
第二讀取單元,用于利用庫函數(shù)將日志文件輸出到本體日志文件;和/或,
第三讀取單元,用于利用庫函數(shù)將日志文件輸出到控制臺(tái);和/或,
第四讀取單元,用于利用tcp協(xié)議將日志文件輸出到網(wǎng)絡(luò)上的指定終端;和/或,
第五讀取單元,用于利用串行通訊端口將日志文件輸出到串口設(shè)備。
基于上述任意實(shí)施例,該系統(tǒng)還可以包括:
篩選模塊,用于根據(jù)設(shè)定的篩選信息對(duì)輸出的日志文件進(jìn)行篩選。
說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例公開的裝置而言,由于其與實(shí)施例公開的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動(dòng)磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
以上對(duì)本發(fā)明所提供的一種日志分析方法及系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。