一種日志文件滾動存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種日志文件滾動存儲系統(tǒng),MSH?DEBUGD模塊包括日志子模塊和用于記錄debug信息的debug子模塊;日志子模塊包括msh?debugd守護進程和msh?debug.so共享庫,Msh?debug.so共享庫提供日志的打開、記錄以及關閉三種類型的接口,第三方程序使用共享庫提供接口將日志debug信息發(fā)送到msh?debugd守護進程,msh?debugd守護進程接收到日志debug信息后,對日志就行存儲或者發(fā)送到遠程日志服務器,對debug信息就行選擇性打印到終端控制臺。本發(fā)明中路由器日志文件可以被配置,也可以被過濾,也可以保存到本端或者遠端,大大方便了使用。
【專利說明】
一種日志文件滾動存儲系統(tǒng)
技術領域
[0001 ]本發(fā)明涉及計算機系統(tǒng)領域,具體涉及一種日志文件滾動存儲系統(tǒng)。
【背景技術】
[0002]在openwrt中,busybox中實現(xiàn)了syslogd和 1gread; syslogd用來記錄log, logged則用來讀取log;
Syslogd與各相關進程通過UBUS協(xié)議,將日志信息記錄在一塊共享內(nèi)存中,這塊共享內(nèi)存,是以一個循環(huán)鏈表的形式組織的,并且鏈表長度是固定的,如果日志信息達到上限,則每次會覆蓋掉最早的那條日志。1gread通過讀取這個共享內(nèi)存,達到日志輸出的效果。
[0003]現(xiàn)有的實現(xiàn)方法中存在的問題:
1、日志記錄在內(nèi)存中,如果斷電,日志信息則不能保存下來;
2、0penwrt系統(tǒng)的syslogd依賴系統(tǒng)本身的UBUS子系統(tǒng),離開openwrt體系,不能獨立運行,所以,移植性不好;
3、0penwrt的日志系統(tǒng),不能對日志信息進行過濾以及分級。
[0004]
【發(fā)明內(nèi)容】
[0005]為解決上述問題,本發(fā)明提供了一種日志文件滾動存儲系統(tǒng),路由器日志文件可以被配置,也可以被過濾,也可以保存到本端或者遠端,大大方便了使用。
[0006]為實現(xiàn)上述目的,本發(fā)明采取的技術方案為:
一種日志文件滾動存儲系統(tǒng),包括MSH-DEBU⑶模塊,所述MSH-DEBU⑶模塊為基于百米生活定制化的openwrt系統(tǒng)的一個日志管理模塊,所述MSH-DEBU⑶模塊包括日志子模塊和用于記錄debug信息的debug子模塊;所述日志子模塊包括msh-debugd守護進程和msh-debug.so 共享庫, Msh-debug.so 共享庫提供日志的打開 、記錄以及關閉三種類型的接口 ,第三方程序使用共享庫提供接口將日志debug信息發(fā)送到msh-debugd守護進程,msh-debugd守護進程接收到日志debug信息后,對日志就行存儲或者發(fā)送到遠程日志服務器,對debug信息就行選擇性打印到終端控制臺。
[0007]其中,所述就行存儲采用以下步驟:
用戶配置日志文件的最大值,保存日志時,需將把日志文件分為兩個文件保存,每個日志文件的大小是用戶配置的一半。
[0008]其中,所述msh-debug.so共享庫提供3種接口,分別是opendebug、mshdebug和closedebug,0pendebug和closedebug具有打開和關閉日志/debug記錄功能,mshdebug包括標準的mshdebug以及mshdebug+兩個接口,mshdebug和syslog功能類似,用于將指定消息發(fā)送給msh-debugd守護進程,并且進行相應的處理,Mshdebug+接口,用于將制定消息發(fā)送給msh-debugd守護進程外,還用于把調(diào)用該接口時的當前函數(shù)名和代碼的當前行號發(fā)送出去,還可以為debug功能提供詳細的錯誤定位功能。
[0009]其中,所述Msh-debugd守護進程用于作為一個本地日志的服務器,接收其他應用程序的日志以及debug信息,還用于作為日志的保的略客戶端,負責根據(jù)UCI的相關配置,對接收的日志就行本地存儲或者遠程存儲或者直接輸出到控制臺。
[0010]其中,UCI配置支持本地日志保存路徑、日志文件大小、遠程日志服務器的IP和port配置,debug信息支持的客戶端列表配置。
[0011]本發(fā)明具有以下有益效果:
路由器日志文件可以被配置,也可以被過濾,也可以保存到本端或者遠端,大大方便了使用。
【附圖說明】
[0012]圖1為本發(fā)明實施例一種日志文件滾動存儲系統(tǒng)的系統(tǒng)原理框圖。
[0013]
【具體實施方式】
為了使本發(fā)明的目的及優(yōu)點更加清楚明白,以下結合實施例對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0014]如圖1所示,本發(fā)明實施例提供了一種日志文件滾動存儲系統(tǒng),包括MSH-DEBUGD模塊,所述MSH-DEBU⑶模塊為基于百米生活定制化的openwrt系統(tǒng)的一個日志管理模塊,所述MSH-DEBU⑶模塊包括日志子模塊和用于記錄debug信息的debug子模塊;所述日志子模塊包括msh-debugd守護進程和msh-debug.so共享庫,Msh-debug.so共享庫提供日志的打開、記錄以及關閉三種類型的接口,第三方程序使用共享庫提供接口將日志debug信息發(fā)送到msh-debugd守護進程,msh-debugd守護進程接收到日志debug信息后,對日志就行存儲或者發(fā)送到遠程日志服務器,對debug信息就行選擇性打印到終端控制臺。
[0015]所述就行存儲采用以下步驟:
用戶配置日志文件的最大值,保存日志時,需將把日志文件分為兩個文件保存,每個日志文件的大小是用戶配置的一半。比如用戶配置日志文件大小為32K,文件名為log,則,日志文件會分割成1gO和1gl兩個文件,每個文件的最大值為16K。這樣做的目的是可以保證1gO里的日志,一定比1gl里的日志更舊,當log大小達到16K后,日志會一次性刷到1gO中,當日志再次達到16K后,日志會再次刷新到1gl中,此時,1gl為最新的log。而,當?shù)谌涡枰滤⑷罩緯r,會線把1gl內(nèi)容保存到1gO,而把最新log刷到1gl中,測試,1gl依然是最新的log,以此循環(huán)。可以保證,每次1gl的日志,都是最新的日志。而且還能保證往flash里刷日志的頻率不會過于頻繁。
[0016]所述msh-debug.so共享庫提供3種接口,分別是opendebug、mshdebug和closedebug,0pendebug和closedebug具有打開和關閉日志/debug記錄功能,mshdebug包括標準的mshdebug以及mshdebug+兩個接口,mshdebug和syslog功能類似,用于將指定消息發(fā)送給msh-debugd守護進程,并且進行相應的處理,Mshdebug+接口,用于將制定消息發(fā)送給msh-debugd守護進程外,還用于把調(diào)用該接口時的當前函數(shù)名和代碼的當前行號發(fā)送出去,還可以為debug功能提供詳細的錯誤定位功能。
[0017]所述Msh-debugd守護進程用于作為一個本地日志的服務器,接收其他應用程序的日志以及debug信息,還用于作為日志的保的略客戶端,負責根據(jù)UCI的相關配置,對接收的日志就行本地存儲或者遠程存儲或者直接輸出到控制臺。
[0018]本具體實施中UCI配置支持本地日志保存路徑、日志文件大小、遠程日志服務器的IP和port配置,debug信息支持的客戶端列表配置。
[0019]以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進和潤飾,這些改進和潤飾也應視為本發(fā)明的保護范圍。
【主權項】
1.一種日志文件滾動存儲系統(tǒng),其特征在于,包括MSH-DEBU⑶模塊,所述MSH-DEBU⑶模塊為基于百米生活定制化的openwrt系統(tǒng)的一個日志管理模塊,所述MSH-DEBUGD模塊包括日志子模塊和用于記錄debug信息的debug子模塊;所述日志子模塊包括msh-debugd守護進程和msh-debug.so共享庫,Msh-debug.so共享庫提供日志的打開、記錄以及關閉三種類型的接口,第三方程序使用共享庫提供接口將日志debug信息發(fā)送到msh-debugd守護進程,msh-debugd守護進程接收到日志debug信息后,對日志進行存儲或者發(fā)送到遠程日志服務器或者把debug信息選擇性打印到終端控制臺。2.根據(jù)權利要求1所述的一種日志文件滾動存儲系統(tǒng),其特征在于,所述進行存儲采用以下步驟: 用戶配置日志文件的最大值,保存日志時,需將把日志文件分為兩個文件保存,每個日志文件的大小是用戶配置的一半。3.根據(jù)權利要求1所述的一種日志文件滾動存儲系統(tǒng),其特征在于,所述msh-debug.so共享庫提供3種接口,分別是opendebug、mshdebug和closedebug ,Opendebug和c1sedebug具有打開和關閉日志/debug記錄功能,mshdebug包括標準的mshdebug以及mshdebug+兩個接口,mshdebug和syslog功能類似,用于將指定消息發(fā)送給msh-debugd守護進程,并且進行相應的處理,Mshdebug+接口,用于將制定消息發(fā)送給msh-debugd守護進程外,還把調(diào)用該接口時的當前函數(shù)名和代碼的當前行號發(fā)送出去,還可以為debug功能提供詳細的錯誤定位功能。4.根據(jù)權利要求1所述的一種日志文件滾動存儲系統(tǒng),其特征在于,所述Msh-debugd守護進程用于作為一個本地日志的服務器,接收其他應用程序的日志以及debug信息,還用于作為日志的存儲,負責根據(jù)UCI的相關配置,對接收的日志就行本地存儲或者遠程存儲或者直接輸出到控制臺。5.根據(jù)權利要求1所述的一種日志文件滾動存儲系統(tǒng),其特征在于,UCI配置支持本地日志保存路徑、日志文件大小、遠程日志服務器的IP和port配置,debug信息支持的客戶端列表配置。
【文檔編號】G06F17/30GK106021348SQ201610302554
【公開日】2016年10月12日
【申請日】2016年5月9日
【發(fā)明人】梁新剛, 楊雙汗, 蘇光程
【申請人】深圳市百米生活股份有限公司