一種嵌入式設(shè)備開發(fā)日志系統(tǒng)的制作方法【專利摘要】本發(fā)明適用于嵌入式系統(tǒng)領(lǐng)域,提供了一種嵌入式設(shè)備開發(fā)日志系統(tǒng),所述系統(tǒng)包括:嵌入設(shè)備端應(yīng)用軟件的設(shè)備端日志單元,以及位于服務(wù)器端,與所述設(shè)備端日志單元通信的服務(wù)端日志單元,其中:設(shè)備端日志單元,用于生成設(shè)備端應(yīng)用軟件的日志信息,將所述日志信息實(shí)時傳輸給所述服務(wù)端日志單元;服務(wù)端日志單元,用于接收并存儲所述設(shè)備端日志單元傳輸?shù)娜罩拘畔ⅲ鶕?jù)配置文件輸出所述日志信息。本發(fā)明實(shí)施例可以滿足在嵌入式系統(tǒng)開發(fā)、調(diào)試過程中實(shí)時查看并保存日志信息,同時,單個開發(fā)人員在工位上即可對多臺嵌入式設(shè)備進(jìn)行開發(fā)調(diào)試,很好的支持了軟件開發(fā)的多人化、模塊化?!緦@f明】一種嵌入式設(shè)備開發(fā)日志系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明適用于嵌入式系統(tǒng)領(lǐng)域,尤其涉及一種嵌入式設(shè)備開發(fā)日志系統(tǒng)。【
背景技術(shù):
】[0002]隨著電子技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)的應(yīng)用越來越廣泛,越來越多的領(lǐng)域開始使用嵌入式系統(tǒng)。由于嵌入式設(shè)備內(nèi)部資源有限,絕大多數(shù)嵌入式設(shè)備采用串口進(jìn)行開發(fā)、調(diào)試工作。當(dāng)前廣泛使用的Log模塊一般支持串口實(shí)時輸出和嵌入式系統(tǒng)本地文件存儲兩種方式。[0003]由于嵌入式系統(tǒng)資源有限,采用本地存儲僅能保存有限大小的日志文件,一般不怎么使用。使用串口實(shí)時日志可以滿足單板調(diào)試工作,但是如果系統(tǒng)是復(fù)雜的多個終端,多板卡聯(lián)調(diào)和系統(tǒng)組網(wǎng)模式,由于串口的局限性,每臺機(jī)器只能連接I?2臺嵌入式板卡,每臺機(jī)器也只能允許一人占用,這大大制約了開發(fā)和調(diào)試的工作效率。而且隨著軟件模塊化的進(jìn)程日漸推進(jìn),嵌入式開發(fā)由過去的單人開發(fā)轉(zhuǎn)變?yōu)槎嗳碎_發(fā),進(jìn)一步加劇了調(diào)試資源嚴(yán)重不足的問題。[0004]當(dāng)前已有的網(wǎng)絡(luò)日志系統(tǒng)都是基于設(shè)備運(yùn)行角度考慮的,一般的流程是首先將日志輸出到特定文件,到達(dá)一定時間后進(jìn)行壓縮、傳輸。這樣的網(wǎng)絡(luò)日志系統(tǒng)實(shí)時性差,而在嵌入式系統(tǒng)軟件開發(fā)、調(diào)試中,開發(fā)人員都依靠日志信息進(jìn)行故障的分析和定位。如果使用當(dāng)前已有的日志系統(tǒng)無法在故障現(xiàn)象出現(xiàn)時實(shí)時的提供日志信息,開發(fā)人員只有在系統(tǒng)故障現(xiàn)象結(jié)束后一段時間才能從設(shè)備獲取故障時刻和的日志文件,進(jìn)而進(jìn)行分析嚴(yán)重影響故障的分析、定位和排除,很大程度上拖延了項(xiàng)目的進(jìn)度?!?br/>發(fā)明內(nèi)容】[0005]本發(fā)明實(shí)施例提供了一種嵌入式設(shè)備開發(fā)日志系統(tǒng),旨在解決現(xiàn)有網(wǎng)絡(luò)日志系統(tǒng)實(shí)時性差,嚴(yán)重影響故障的分析、定位和排查的問題。[0006]本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種嵌入式設(shè)備開發(fā)日志系統(tǒng),所述系統(tǒng)包括:[0007]嵌入設(shè)備端應(yīng)用軟件的設(shè)備端日志單元,以及位于服務(wù)器端,與所述設(shè)備端日志單元通信的服務(wù)端日志單元,其中:[0008]設(shè)備端日志單元,用于生成設(shè)備端應(yīng)用軟件的日志信息,將所述日志信息實(shí)時傳輸給所述服務(wù)端日志單元;[0009]服務(wù)端日志單元,用于接收并存儲所述設(shè)備端日志單元傳輸?shù)娜罩拘畔?,根?jù)配置文件輸出所述日志信息。[0010]本發(fā)明實(shí)施例可以滿足在嵌入式系統(tǒng)開發(fā)、調(diào)試過程中實(shí)時查看并保存日志信息,同時,單個開發(fā)人員在工位上即可對多臺嵌入式設(shè)備進(jìn)行開發(fā)調(diào)試,很好的支持了軟件開發(fā)的多人化、模塊化?!緦@綀D】【附圖說明】[0011]圖1表示嵌入式設(shè)備開發(fā)日志系統(tǒng)的結(jié)構(gòu)圖;[0012]圖2表示嵌入式設(shè)備開發(fā)日志系統(tǒng)服務(wù)器端的實(shí)現(xiàn)流程圖。【具體實(shí)施方式】[0013]在本發(fā)明實(shí)施例中,通過在設(shè)備端日志單元生成日志信息,在服務(wù)端日志單元控制日志信息的輸出,從而達(dá)到日志信息的實(shí)時性傳輸。[0014]圖1示出了本發(fā)明實(shí)施例提供的嵌入式設(shè)備開發(fā)的日志系統(tǒng)結(jié)構(gòu),為了便于說明,僅示出了本發(fā)明實(shí)施例相關(guān)的部分。[0015]設(shè)備端日志單元11生成設(shè)備端應(yīng)用軟件的日志信息,將日志信息實(shí)時傳輸給服務(wù)端日志單元12。[0016]在本發(fā)明是實(shí)例中,設(shè)備端日志單元11提供設(shè)備應(yīng)用軟件日志信息的控制性收集工功能。在設(shè)計(jì)、實(shí)現(xiàn)中嚴(yán)格遵循可移植操作系統(tǒng)接口(PortableOperatingSystemInterface,P0SIX)標(biāo)準(zhǔn),從而使得設(shè)備端日志單元11可以很方便的移植到其他遵循POSIX標(biāo)準(zhǔn)的操作系統(tǒng)中,保證了設(shè)備端日志單元11可以在多種嵌入式設(shè)備平臺中的使用。[0017]在本發(fā)明實(shí)施例中,日志信息收集模塊111收集設(shè)備端應(yīng)用軟件的日志信息,日志信息傳輸模塊112將日志信息通過網(wǎng)絡(luò)實(shí)時傳輸給服務(wù)端日志單兀12。[0018]在本發(fā)明實(shí)施例中,日志信息傳輸模塊112可依據(jù)配置將程序員需要的軟件運(yùn)行消息通過網(wǎng)絡(luò)實(shí)時傳輸?shù)街付ǖ姆?wù)端日志單元12,考慮到串口調(diào)試功能的簡單、易用、可靠性,本發(fā)明保留了原始的串口實(shí)時輸出日志信息的方式。[0019]作為本發(fā)明的優(yōu)選實(shí)施例,故障定位信息添加模塊113對單個函數(shù)的入口、出口自動添加日志信息、生成時間、所在文件名稱,以及輸出行的位置信息。[0020]在本發(fā)明實(shí)施例中,使用C語言進(jìn)行開發(fā),避免過多占用嵌入式系統(tǒng)有限的資源,在提供的接口中使用_LINE—FILE_兩個宏定義,借助編譯器實(shí)現(xiàn)了在故障定位信息添加模塊113中自動添加日志信息、生成時間、所在文件名稱,以及輸出行的位置信息,這些日志信息也可以通過網(wǎng)絡(luò)在服務(wù)端日志單元12實(shí)時顯示,可以使得故障現(xiàn)象發(fā)生時刻,程序員可以通過實(shí)時查看日志信息即可定位故障到單個函數(shù)。[0021]作為本發(fā)明的優(yōu)選實(shí)施例,日志分級配置模塊114配置日志信息的分級級別。[0022]在本發(fā)明實(shí)施例中,日志信息包括普通、告警和錯誤三個級別。[0023]在本發(fā)明實(shí)施例中,普通級日志信息是指在程序調(diào)式中用以增加調(diào)試內(nèi)容的日志信息,此類信息僅在產(chǎn)品開發(fā)階段使用,在設(shè)備發(fā)布后,該級別的日志信息默認(rèn)關(guān)閉;告警級日志信息是指一般性錯誤的日志信息,需要程序員來判斷是否需要進(jìn)一步處理,設(shè)計(jì)中考慮到告警日志信息會采用三次重發(fā)保證告警日志信息的可靠傳輸,服務(wù)端日志單元12收到后續(xù)的報(bào)文后,如果發(fā)現(xiàn)該報(bào)文的序列號小于當(dāng)前的接收窗口數(shù),將對該報(bào)文進(jìn)行丟棄處理;錯誤級日志信息是指程序運(yùn)行中非常嚴(yán)重的日志信息,需要保證其可靠的傳輸,首先將日志信息存儲到本地文件,待收到服務(wù)端日志單元12收到日志報(bào)文的確認(rèn)消息后再將其刪除。上述三種類型的日志信息使用控制位進(jìn)行控制,程序員可以在服務(wù)端日志單元12使用圖形用戶界面(GraphicalUserInterface,⑶I)完成對其的改變,進(jìn)而實(shí)現(xiàn)動態(tài)調(diào)整日志輸出的等級的功能。[0024]作為本發(fā)明的優(yōu)選實(shí)施例,監(jiān)控信息獲取模塊115在設(shè)備端應(yīng)用軟件運(yùn)行時,獲取應(yīng)用軟件的編譯時間,并保存開發(fā)人員設(shè)定的應(yīng)用軟件版本信息。[0025]在本發(fā)明實(shí)施例中,設(shè)備端日志單元11依照設(shè)計(jì)與所在程序在同一進(jìn)程下運(yùn)行,其在編譯時會自動獲取編譯時間,同時保存程序員設(shè)定的版本信息,開機(jī)運(yùn)行之后,服務(wù)器日志單元12會向設(shè)備端日志單元11查詢編譯時間和版本信息,得到返回信息后將這些信息在監(jiān)控窗口顯示。[0026]服務(wù)端日志單元12接收并存儲設(shè)備端日志單元11傳輸?shù)娜罩拘畔?,根?jù)配置文件輸出日志信息。[0027]在本發(fā)明是實(shí)例中,除了保留傳統(tǒng)的針對嵌入式系統(tǒng)本地存儲和串口調(diào)試外,還可以構(gòu)成本地信息傳輸和遠(yuǎn)端存儲,特別是提供日志信息的實(shí)時傳輸和顯示功能。[0028]在本發(fā)明實(shí)施例中,日志信息接收模塊121接收并保存設(shè)備端日志單元11發(fā)送的日志信息,日志信息輸出配置模塊122配置日志信息的輸出條件,日志信息輸出模塊123根據(jù)配置信息輸出日志信息。[0029]在本發(fā)明實(shí)施例中,設(shè)備端日志單元11和服務(wù)端日志單元12通過傳輸協(xié)議/因特網(wǎng)互聯(lián)協(xié)議(TransmissionControlProtocol/InternetProtocol,TCP/IP)的用戶數(shù)據(jù)報(bào)協(xié)議(UserDatagramProtocol,UDP)方式通訊,為了用戶體驗(yàn),服務(wù)器日志單元12通過GUI配置日志信息的輸出條件,對日志信息進(jìn)行屏蔽和過濾,設(shè)置日志信息的優(yōu)先級別和顯示方式,可以用不同顏色來顯示不同優(yōu)先級別的日志信息,將設(shè)置保存為配置文件,并把日志優(yōu)先級要求通過TCP/IP發(fā)給設(shè)備端日志單元11。[0030]在本發(fā)明實(shí)施例中,日志信息輸出模塊123通過不同的顏色區(qū)分顯示輸出不同的日志信息。[0031]作為本發(fā)明的優(yōu)選實(shí)施例,監(jiān)控信息查詢模塊124根據(jù)讀取的配置文件創(chuàng)建監(jiān)控窗口,向設(shè)備端日志單元11發(fā)送查詢消息。[0032]作為本發(fā)明的優(yōu)選實(shí)施例,監(jiān)控調(diào)試模塊125可視化監(jiān)控設(shè)備端運(yùn)行的應(yīng)用軟件的版本、同步網(wǎng)絡(luò)時間、監(jiān)控設(shè)備端應(yīng)用軟件的運(yùn)行狀態(tài),以及遠(yuǎn)程控制設(shè)備端重啟。[0033]作為本發(fā)明的優(yōu)選實(shí)施例,日志管理模塊126判斷當(dāng)前打開的日志文件的大小,在當(dāng)前打開的日志文件小于設(shè)定閾值時,將當(dāng)前日志信息附加到當(dāng)前打開的日志文件中,在當(dāng)前打開的日志文件大于設(shè)定閾值時,創(chuàng)建新的日志文件寫入當(dāng)前日志信息。[0034]在本發(fā)明實(shí)施例中,為了保證日志信息的實(shí)時傳輸,設(shè)備端日志單元11運(yùn)行后會和服務(wù)端日志單元12建立采用無連接的UDP通信方式。在空閑時刻,設(shè)備端日志單元11心跳設(shè)計(jì)每隔數(shù)秒發(fā)送一次至服務(wù)器日志單元12,連續(xù)6次沒有收到心跳,服務(wù)器日志單元12會認(rèn)為設(shè)備端日志單元11的進(jìn)程已經(jīng)退出,在監(jiān)控窗口提示某節(jié)點(diǎn)的設(shè)備異常。[0035]在本發(fā)明實(shí)施例中,設(shè)備端日志單元11協(xié)議中會對發(fā)送的日志信息報(bào)文進(jìn)行計(jì)數(shù),從而保證服務(wù)端日志單元12可以依據(jù)報(bào)文的達(dá)到情況推算網(wǎng)絡(luò)是否擁塞,同時,服務(wù)端日志單元12可以在監(jiān)控窗口顯示日志的丟失情況,提供給程序員用以分析日志信息是否有效,當(dāng)丟包率達(dá)到一定數(shù)額時,服務(wù)端日志單元12會自動丟棄該時段的報(bào)文。[0036]在本發(fā)明實(shí)施例中,服務(wù)端日志單元12可以運(yùn)行在普通臺式機(jī)上面,可視化窗口將日志信息實(shí)時顯示,無需數(shù)據(jù)庫的支持即可完成日志信息的存儲。[0037]在本發(fā)明實(shí)施例中,引入了設(shè)備端和服務(wù)器端的概念,從而使得日志信息實(shí)現(xiàn)生產(chǎn)與使用分離,設(shè)備端日志單元11按規(guī)定可控的生成日志信息,服務(wù)端日志單元12負(fù)責(zé)日志Ih息的顯不、分尚和存儲。[0038]圖2示出了本發(fā)明實(shí)施例提供的嵌入式設(shè)備開發(fā)日志系統(tǒng)服務(wù)器端的實(shí)現(xiàn)流程,詳述如下:[0039]Dl過程是讀取上次保存的配置信息,包括界面的信息顯示過濾設(shè)置,顯示優(yōu)先級不同信息的顏色,網(wǎng)絡(luò)通訊的配置等。[0040]D2過程主要是控制顯示日志信息。由于采用設(shè)備端/服務(wù)器(client/server,c/s)結(jié)構(gòu),作為設(shè)備端的嵌入式終端會根據(jù)定時器設(shè)定的間隔時間返回給服務(wù)器端日志信息,由于網(wǎng)絡(luò)通訊有可能的阻塞,或者終端發(fā)生異常,所以當(dāng)定時器到時,但沒有收到終端的日志反饋信息,服務(wù)器端就會顯示紅色警告信息以作提示。[0041]D3過程是日志的管理,如果日志信息大小比設(shè)定的閾值小,則將當(dāng)前日志信息附力口到當(dāng)前日志文件中,如果日志信息大小比設(shè)定的閾值大,說明需要清除日志文件,重新打開作為新的文件寫入日志信息。這個管理過程主要是防止日志文件過于龐大,超過了服務(wù)器端文件系統(tǒng)的容量。[0042]本發(fā)明實(shí)施例可以滿足在嵌入式系統(tǒng)開發(fā)、調(diào)試過程中實(shí)時查看并保存日志信息,同時,單個開發(fā)人員在工位上即可對多臺嵌入式設(shè)備進(jìn)行開發(fā)調(diào)試,很好的支持了軟件開發(fā)的多人化、模塊化。[0043]以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本【
技術(shù)領(lǐng)域:
】的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍?!緳?quán)利要求】1.一種嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述日志系統(tǒng)包括:嵌入設(shè)備端應(yīng)用軟件的設(shè)備端日志單元,以及位于服務(wù)器端,與所述設(shè)備端日志單元通信的服務(wù)端日志單元,其中:設(shè)備端日志單元,用于生成設(shè)備端應(yīng)用軟件的日志信息,將所述日志信息實(shí)時傳輸給所述服務(wù)端日志單元;服務(wù)端日志單元,用于接收并存儲所述設(shè)備端日志單元傳輸?shù)娜罩拘畔?,根?jù)配置文件輸出所述日志信息。2.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述設(shè)備端日志單元包括:日志信息收集模塊,用于收集設(shè)備端應(yīng)用軟件的日志信息;以及日志信息傳輸模塊,用于將所述日志信息通過網(wǎng)絡(luò)實(shí)時傳輸給所述服務(wù)端日志單元。3.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述設(shè)備端日志單元還包括:故障定位信息添加模塊,用于對單個函數(shù)的入口、出口自動添加日志信息、生成時間、所在文件名稱,以及輸出行的位置信息。4.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述設(shè)備端日志單元還包括:日志分級配置模塊,用于配置日志信息的分級級別。5.如權(quán)利要求4所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述日志信息包括普通、告警和錯誤三個級別。6.如權(quán)利要求4所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述設(shè)備端日志單元還包括:監(jiān)控信息獲取模塊,用于在設(shè)備端應(yīng)用軟件運(yùn)行時,獲取應(yīng)用軟件的編譯時間,并保存開發(fā)人員設(shè)定的應(yīng)用軟件版本信息。7.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述服務(wù)端日志單元包括:日志信息接收模塊,用于接收并保存設(shè)備端日志單元發(fā)送的日志信息;日志信息輸出配置模塊,用于配置日志信息的輸出條件;以及日志信息輸出模塊,用于根據(jù)所述配置信息輸出日志信息。8.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述日志信息輸出模塊通過不同的顏色區(qū)分顯示輸出不同的日志信息。9.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述服務(wù)端日志單元還包括:監(jiān)控信息查詢模塊,用于根據(jù)讀取的配置文件創(chuàng)建監(jiān)控窗口,向所述設(shè)備端日志單元發(fā)送查詢消息。10.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述服務(wù)端日志單元還包括:監(jiān)控調(diào)試模塊,用于可視化監(jiān)控設(shè)備端運(yùn)行的應(yīng)用軟件的版本、同步網(wǎng)絡(luò)時間、監(jiān)控設(shè)備端應(yīng)用軟件的運(yùn)行狀態(tài),以及遠(yuǎn)程控制設(shè)備端重啟。11.如權(quán)利要求1所述的嵌入式設(shè)備開發(fā)日志系統(tǒng),其特征在于,所述服務(wù)端日志單元還包括:日志管理模塊,用于判斷當(dāng)前打開的日志文件的大小,在當(dāng)前打開的日志文件小于設(shè)定閾值時,將當(dāng)前日志信息附加到當(dāng)前打開的日志文件中,在當(dāng)前打開的日志文件大于設(shè)定閾值時,創(chuàng)建新的日志文`件寫入當(dāng)前日志信息。【文檔編號】H04L12/26GK103778049SQ201210401113【公開日】2014年5月7日申請日期:2012年10月19日優(yōu)先權(quán)日:2012年10月19日【發(fā)明者】王文,張鑫,周斐,喬美生,趙巍,魏金光,張強(qiáng)申請人:北京市三希電子科技開發(fā)公司