本申請涉及日志處理,具體涉及一種日志數(shù)據(jù)存儲方法、裝置、電子設備及存儲介質。
背景技術:
1、隨著電動汽車技術的發(fā)展,汽車控制技術和車機功能日新月異,各應用和系統(tǒng)新功能不斷增加,開發(fā)調(diào)試以及關鍵數(shù)據(jù)需要記錄大量的日志文件。功能的多樣化復雜化導致的代碼量急速增加,功能調(diào)試,測試,驗證,維護等,都需要大量且詳細的日志記錄文件。軟件開發(fā)的各個環(huán)節(jié)都需要記錄大量的日志消息,實時日志量非常大,對于日志存儲空間的需求量很大,進而需要對日志內(nèi)容做壓縮處理,普通現(xiàn)有的日志系統(tǒng)過于龐大,導致日志在實時收集和文件讀寫時需要占用硬盤很高的讀寫速度,在日志處理時也需要大量的邏輯運算,在日志文件生成后對日志文件壓縮處理甚至會形成cpu峰值,硬盤讀寫速度再一次達到更高峰值,大量文件i/o操作,導致系統(tǒng)短時間卡頓風險,壓縮時也會造成內(nèi)存占用居高不下的問題,以至于導致現(xiàn)在的日志服務在系統(tǒng)中長時間占用了大量的系統(tǒng)資源。
技術實現(xiàn)思路
1、為了解決如何在日志收集存儲過程中節(jié)省系統(tǒng)資源的技術問題,本申請?zhí)峁┝艘环N日志數(shù)據(jù)存儲方法、裝置、電子設備及存儲介質。
2、第一方面,本申請?zhí)峁┝艘环N日志數(shù)據(jù)存儲方法,所述方法包括:
3、通過日志數(shù)據(jù)傳輸通道從日志客戶端獲取日志數(shù)據(jù);
4、將所述日志數(shù)據(jù)緩存到內(nèi)存的目標地址,并將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表;
5、根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件;
6、保存所述目標壓縮文件。
7、可選地,通過日志數(shù)據(jù)傳輸通道從日志客戶端獲取日志數(shù)據(jù),包括:
8、根據(jù)讀取的配置文件進行初始化;其中,所述配置文件用于配置與所述日志客戶端的所述日志數(shù)據(jù)傳輸通道;
9、在所述日志數(shù)據(jù)傳輸通道正常的情況下,通過所述日志數(shù)據(jù)傳輸通道獲取所述日志數(shù)據(jù)。
10、可選地,在所述日志數(shù)據(jù)傳輸通道正常的情況下,通過所述日志數(shù)據(jù)傳輸通道獲取所述日志數(shù)據(jù),包括:
11、基于初始化建立的日志數(shù)據(jù)傳輸通道向所述日志客戶端發(fā)送日志服務通知;其中,所述日志服務通知攜帶日志服務端的標志位;
12、獲取所述日志客戶端基于所述日志服務通知返回的響應消息;
13、若所述響應消息指示所述日志客戶端確定所述日志服務端的標志位有效,則確定所述日志數(shù)據(jù)傳輸通道正常;
14、通過所述日志數(shù)據(jù)傳輸通道獲取所述日志客戶端發(fā)送的所述日志數(shù)據(jù)。
15、可選地,將所述日志數(shù)據(jù)緩存到內(nèi)存的目標地址,并將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表,包括:
16、根據(jù)接收的所述日志數(shù)據(jù)的時間先后順序申請用于緩存所述日志數(shù)據(jù)的目標地址;
17、將所述日志數(shù)據(jù)緩存到所述目標地址;
18、將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表,并觸發(fā)通知消息;其中,所述通知消息用于通知日志處理任務處理所述日志數(shù)據(jù)。
19、可選地,將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表之后,所述方法還包括:
20、判斷所述日志緩存鏈表是否達到預設的最大長度;
21、若所述日志緩存鏈表達到所述最大長度,則刪除所述日志緩存鏈表中存在時間最長的節(jié)點,并在隊尾添加一個新節(jié)點;其中,所述新節(jié)點用于接收下一幀的日志數(shù)據(jù)。
22、可選地,根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件,包括:
23、日志處理任務新建日志存儲文件;
24、根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,讀取所述目標內(nèi)存指針;
25、在所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)有效的情況下,對所述日志數(shù)據(jù)進行壓縮算法處理,得到處理后數(shù)據(jù);
26、將所述處理后數(shù)據(jù)寫入所述日志存儲文件,得到所述目標壓縮文件。
27、可選地,對所述日志數(shù)據(jù)進行壓縮算法處理,得到處理后數(shù)據(jù),包括:
28、調(diào)用壓縮算法函數(shù)對所述日志數(shù)據(jù)進行數(shù)據(jù)解析,得到目標壓縮字典;
29、將所述目標壓縮字典追加更新至所述日志存儲文件的當前壓縮字典;
30、基于所述當前壓縮字典壓縮所述日志數(shù)據(jù),得到所述處理后數(shù)據(jù)。
31、可選地,根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件之后,所述方法還包括:
32、刪除所述目標內(nèi)存指針對應的所述日志數(shù)據(jù),以及刪除所述目標內(nèi)存指針。
33、第二方面,本申請?zhí)峁┝艘环N日志數(shù)據(jù)存儲裝置,所述裝置包括:
34、獲取模塊,用于通過日志數(shù)據(jù)傳輸通道從日志客戶端獲取日志數(shù)據(jù);
35、緩存模塊,用于將所述日志數(shù)據(jù)緩存到內(nèi)存的目標地址,并將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表;
36、處理模塊,用于根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件;
37、存儲模塊,用于保存所述目標壓縮文件。
38、第三方面,本申請?zhí)峁┝艘环N電子設備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
39、存儲器,用于存放計算機程序;
40、處理器,用于執(zhí)行存儲器上所存放的程序時,實現(xiàn)第一方面任一項實施例所述的日志數(shù)據(jù)存儲方法的步驟。
41、第四方面,本申請?zhí)峁┝艘环N計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如第一方面任一項實施例所述的日志數(shù)據(jù)存儲方法的步驟。
42、本申請的有益效果:
43、本申請實施例提供的該方法,通過日志數(shù)據(jù)傳輸通道從日志客戶端獲取日志數(shù)據(jù);將所述日志數(shù)據(jù)緩存到內(nèi)存的目標地址,并將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表;根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件;保存所述目標壓縮文件。該方法,可通過日志數(shù)據(jù)傳輸通道從日志客戶端獲取日志數(shù)據(jù),并緩存到內(nèi)存的目標地址,將該目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表,在進行日志處理時,按照日志緩存鏈表中存儲目標內(nèi)存指針的順序依次對日志數(shù)據(jù)進行壓縮算法處理,無需多次對日志數(shù)據(jù)進行讀寫,并且,將日志數(shù)據(jù)直接壓縮存儲到目標壓縮文件,可有效降低多日志文件集體打包時帶來的高cpu消耗和頻繁文件讀寫帶來的資源消耗,節(jié)省了日志收集存儲過程中的系統(tǒng)資源。
1.一種日志數(shù)據(jù)存儲方法,其特征在于,所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,通過日志數(shù)據(jù)傳輸通道從日志客戶端獲取日志數(shù)據(jù),包括:
3.根據(jù)權利要求2所述的方法,其特征在于,在所述日志數(shù)據(jù)傳輸通道正常的情況下,通過所述日志數(shù)據(jù)傳輸通道獲取所述日志數(shù)據(jù),包括:
4.根據(jù)權利要求1所述的方法,其特征在于,將所述日志數(shù)據(jù)緩存到內(nèi)存的目標地址,并將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表,包括:
5.根據(jù)權利要求4所述的方法,其特征在于,將所述目標地址對應的目標內(nèi)存指針加入到日志緩存鏈表之后,所述方法還包括:
6.根據(jù)權利要求1所述的方法,其特征在于,根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件,包括:
7.根據(jù)權利要求6所述的方法,其特征在于,對所述日志數(shù)據(jù)進行壓縮算法處理,得到處理后數(shù)據(jù),包括:
8.根據(jù)權利要求1所述的方法,其特征在于,根據(jù)所述日志緩存鏈表中存儲的所述目標內(nèi)存指針的順序,依次對所述目標內(nèi)存指針對應的所述日志數(shù)據(jù)進行壓縮算法處理,得到目標壓縮文件之后,所述方法還包括:
9.一種日志數(shù)據(jù)存儲裝置,其特征在于,所述裝置包括:
10.一種電子設備,其特征在于,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
11.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質內(nèi)存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)權利要求1-8任一項所述的方法。