本公開提供了一種日志代碼的生成方法,包括:獲取描述文件,其中,描述文件至少描述了關(guān)于日志邏輯的多個(gè)字段和各字段屬性;解析描述文件,得到日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板,其中,多個(gè)代碼模板為采用不同語言預(yù)先生成的代碼模板;以及對(duì)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合目標(biāo)代碼模板,生成與目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。本公開還提供了一種日志代碼的生成裝置、一種計(jì)算機(jī)系統(tǒng)、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和一種計(jì)算機(jī)程序產(chǎn)品。
Generation method, device, computer system and readable storage medium of log code
【技術(shù)實(shí)現(xiàn)步驟摘要】
日志代碼的生成方法、裝置、計(jì)算機(jī)系統(tǒng)和可讀存儲(chǔ)介質(zhì)
本公開涉及計(jì)算機(jī)
,更具體地,涉及一種日志代碼的生成方法、一種日志代碼的生成裝置、一種計(jì)算機(jī)系統(tǒng)和一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
技術(shù)介紹
日志是用來記錄用戶操作、系統(tǒng)運(yùn)行狀態(tài)等參數(shù)的數(shù)據(jù)文件,可供用戶了解設(shè)備的運(yùn)行情況及業(yè)務(wù)處理情況。日志往往隨設(shè)備的運(yùn)行而產(chǎn)生大量的數(shù)據(jù),所以對(duì)日志數(shù)據(jù)進(jìn)行各種分析處理是獲取有效信息的常規(guī)途徑。在相關(guān)技術(shù)中,現(xiàn)有的日志技術(shù)不論是使用傳統(tǒng)的數(shù)據(jù)庫,還是基于列式的存儲(chǔ)數(shù)據(jù),其調(diào)用技術(shù)棧是單一的,要么是某一個(gè)語言(如C代碼)的API接口直接調(diào)用,要么是封裝成一個(gè)動(dòng)態(tài)庫提供相應(yīng)的API接口。但是不論是哪種方式,通過某一種語言實(shí)現(xiàn)的接口,要提供給另一種語言,交互的API接口是固定的,不能方便的更改API接口參數(shù),也不能隨著業(yè)務(wù)或配置的變化而靈活調(diào)整或者自動(dòng)生成。如果需要修改API接口,涉及代碼改動(dòng)的地方較多,增加了開發(fā)工作量,不便于后續(xù)擴(kuò)展。
技術(shù)實(shí)現(xiàn)思路
有鑒于此,本公開提供了一種日志代碼的生成方法、一種日志代碼的生成裝置、一種計(jì)算機(jī)系統(tǒng)和一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。本公開的一個(gè)方面提供了一種日志代碼的生成方法,包括獲取描述文件,其中,上述描述文件至少描述了關(guān)于日志邏輯的多個(gè)字段和各字段屬性;解析上述描述文件,得到日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板,其中,上述多個(gè)代碼模板為采用不同語言預(yù)先生成的代碼模板;以及對(duì)上述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。根據(jù)本公開的實(shí)施例,上述的方法還包括:獲取更新操作,其中,上述更新操作用于更新上述描述文件;響應(yīng)于上述更新操作,修改上述描述文件;對(duì)修改后的描述文件進(jìn)行解析,得到更新后的日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);以及對(duì)上述更新后的日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。根據(jù)本公開的實(shí)施例,修改上述描述文件包括:對(duì)上述描述文件中關(guān)于日志邏輯的字段和/或者字段屬性進(jìn)行修改。根據(jù)本公開的實(shí)施例,從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板包括:獲取選擇操作;以及響應(yīng)于上述選擇操作,從上述預(yù)先構(gòu)建的多個(gè)代碼模板中選擇上述目標(biāo)代碼模板。根據(jù)本公開的實(shí)施例,對(duì)上述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼包括:確定上述目標(biāo)代碼模板對(duì)應(yīng)的語言;根據(jù)上述目標(biāo)代碼模板對(duì)應(yīng)的語言確定目標(biāo)代碼生成器;以及基于上述目標(biāo)代碼生成器對(duì)上述基于第一語言生成的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。本公開的另一個(gè)方面提供了一種日志代碼的生成裝置,包括:第一獲取模塊,用于獲取描述文件,其中,上述描述文件至少描述了關(guān)于日志邏輯的多個(gè)字段和各字段屬性;解析模塊,用于解析上述描述文件,得到日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);確定模塊,用于從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板,其中,上述多個(gè)代碼模板為采用不同語言預(yù)先生成的代碼模板;以及生成模塊,用于對(duì)上述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。根據(jù)本公開的實(shí)施例,上述的裝置還包括:第二獲取模塊,用于獲取更新操作,其中,上述更新操作用于更新上述描述文件;修改模塊,用于響應(yīng)于上述更新操作,修改上述描述文件;上述解析模塊,還用于對(duì)修改后的描述文件進(jìn)行解析,得到更新后的日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);上述生成模塊,還用于對(duì)上述更新后的日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼;其中,修改上述描述文件包括:對(duì)上述描述文件中關(guān)于日志邏輯的字段和/或者字段屬性進(jìn)行修改;以及/或者其中,上述確定模塊包括獲取單元,用于獲取選擇操作;以及選擇單元,用于響應(yīng)于上述選擇操作,從上述預(yù)先構(gòu)建的多個(gè)代碼模板中選擇上述目標(biāo)代碼模板。根據(jù)本公開的實(shí)施例,上述生成模塊包括:第一確定單元,用于確定上述目標(biāo)代碼模板對(duì)應(yīng)的語言;第二確定單元,用于根據(jù)上述目標(biāo)代碼模板對(duì)應(yīng)的語言確定目標(biāo)代碼生成器;以及生成單元,用于基于上述目標(biāo)代碼生成器對(duì)上述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合上述目標(biāo)代碼模板,生成與上述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。本公開的另一個(gè)方面提供了一種計(jì)算機(jī)系統(tǒng),包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序,其中,當(dāng)上述一個(gè)或多個(gè)程序被上述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)如上所述的方法。本公開的另一方面提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)可執(zhí)行指令,所述指令在被執(zhí)行時(shí)用于實(shí)現(xiàn)如上所述的方法。本公開的另一方面提供了一種計(jì)算機(jī)程序產(chǎn)品,包括可執(zhí)行指令,該指令被處理器執(zhí)行時(shí)使處理器實(shí)現(xiàn)如上所述的方法。通過本公開的實(shí)施例,通過解析描述文件可以得到日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板,對(duì)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合目標(biāo)代碼模板,可以自動(dòng)生成與目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼,所以至少部分地克服了現(xiàn)有技術(shù)中生成或修改日志代碼時(shí)開發(fā)工作量大的技術(shù)問題,進(jìn)而達(dá)到了提高日志開發(fā)效率,減少維護(hù)成本的技術(shù)效果。附圖說明通過以下參照附圖對(duì)本公開實(shí)施例的描述,本公開的上述以及其他目的、特征和優(yōu)點(diǎn)將更為清楚,在附圖中:圖1示意性示出了根據(jù)本公開實(shí)施例的可以應(yīng)用日志代碼的生成方法及裝置的應(yīng)用場(chǎng)景;圖2示意性示出了根據(jù)本公開實(shí)施例的日志代碼的生成方法的流程圖;圖3示意性示出了根據(jù)本公開另一實(shí)施例的日志代碼的生成方法的流程圖;圖4示意性示出了根據(jù)本公開實(shí)施例的生成與目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼的流程圖;圖5示意性示出了根據(jù)本公開另一實(shí)施例的日志代碼的生成方法的流程圖;圖6示意性示出了根據(jù)本公開實(shí)施例的日志代碼的生成裝置的框圖;以及圖7示意性示出了根據(jù)本公開實(shí)施例的適于實(shí)現(xiàn)上文描述的日志代碼的生成方法的計(jì)算機(jī)系統(tǒng)的框圖。具體實(shí)施方式以下,將參照附圖來描述本公開的實(shí)施例。但是應(yīng)該理解,這些描述只是示例性的,而并非要限制本公開的范圍。在下面的詳細(xì)描述中,為便于解釋,闡述了許多具體的細(xì)節(jié)以提供對(duì)本公開實(shí)施例的全面理解。然而,明顯地,一個(gè)或多個(gè)實(shí)施例在沒有這些具體細(xì)節(jié)的情況下也可以被實(shí)施。此外,在以下說明中,省略了對(duì)公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本公開的概念。在此使用的術(shù)語僅僅是為了描述具體實(shí)施例,而并非意在限制本公開。在此使用的術(shù)語“包括”、“包含”等表明了所述特征、步驟、操作和/或部件的存在,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、步驟、操作或部件。在此使用的所有術(shù)語(包括技術(shù)和科學(xué)術(shù)語)具有本領(lǐng)域技術(shù)人員通常所理解的含義,除非另外定義。應(yīng)注意,這里使用的術(shù)語應(yīng)解釋為具有與本說明書的上下文相一致的含義,而不應(yīng)以理想化或過于刻板的方式來解釋。本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
1.一種日志代碼的生成方法,包括:/n獲取描述文件,其中,所述描述文件至少描述了關(guān)于日志邏輯的多個(gè)字段和各字段屬性;/n解析所述描述文件,得到日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);/n從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板,其中,所述多個(gè)代碼模板為采用不同語言預(yù)先生成的代碼模板;以及/n對(duì)所述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合所述目標(biāo)代碼模板,生成與所述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。/n
【技術(shù)特征摘要】
1.一種日志代碼的生成方法,包括:
獲取描述文件,其中,所述描述文件至少描述了關(guān)于日志邏輯的多個(gè)字段和各字段屬性;
解析所述描述文件,得到日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);
從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板,其中,所述多個(gè)代碼模板為采用不同語言預(yù)先生成的代碼模板;以及
對(duì)所述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合所述目標(biāo)代碼模板,生成與所述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。
2.根據(jù)權(quán)利要求1所述的方法,還包括:
獲取更新操作,其中,所述更新操作用于更新所述描述文件;
響應(yīng)于所述更新操作,修改所述描述文件;
對(duì)修改后的描述文件進(jìn)行解析,得到更新后的日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu);以及
對(duì)所述更新后的日志的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合所述目標(biāo)代碼模板,生成與所述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。
3.根據(jù)權(quán)利要求2所述的方法,其中,修改所述描述文件包括:
對(duì)所述描述文件中關(guān)于日志邏輯的字段和/或者字段屬性進(jìn)行修改。
4.根據(jù)權(quán)利要求1所述的方法,其中,從預(yù)先構(gòu)建的多個(gè)代碼模板中確定目標(biāo)代碼模板包括:
獲取選擇操作;以及
響應(yīng)于所述選擇操作,從所述預(yù)先構(gòu)建的多個(gè)代碼模板中選擇所述目標(biāo)代碼模板。
5.根據(jù)權(quán)利要求1所述的方法,其中,對(duì)所述基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合所述目標(biāo)代碼模板,生成與所述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼包括:
確定所述目標(biāo)代碼模板對(duì)應(yīng)的語言;
根據(jù)所述目標(biāo)代碼模板對(duì)應(yīng)的語言確定目標(biāo)代碼生成器;以及
基于所述目標(biāo)代碼生成器對(duì)所述基于第一語言生成的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)中的屬性進(jìn)行遍歷,結(jié)合所述目標(biāo)代碼模板,生成與所述目標(biāo)代碼模板對(duì)應(yīng)的語言的日志代碼。
6.一種日志代碼的生成裝置,包括:
第一獲取...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:王凱峰,
申請(qǐng)(專利權(quán))人:奇安信科技集團(tuán)股份有限公司,網(wǎng)神信息技術(shù)北京股份有限公司,
類型:發(fā)明
國別省市:北京;11
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。