System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及數據處理,尤其涉及一種日志處理方法、裝置、電子設備及存儲介質。
技術介紹
1、在生產系統中,通過在日志文件中存儲日志信息,這樣,在發生故障的情況下,可以根據日志信息進行問題定位,進而解決技術問題。然而,在日志文件中,同一種日志信息通常會重復出現多次,冗余的日志信息會占用大量的磁盤空間,并且也會增加問題定位的難度。相關技術中,可以對日志信息進行哈希處理,通過比較日志信息的哈希值對日志信息進行去重,得到不存在重復數據的日志信息。然而,通過去重后的日志信息進行問題定位的難度仍然較高。
技術實現思路
1、為了解決上述技術問題,本申請提供了一種日志處理方法、裝置、電子設備及存儲介質。
2、根據本申請的第一方面,提供了一種日志處理方法,包括:
3、從日志輸出隊列中依次獲取每個待處理日志數據和所述待處理日志數據對應的時間戳;
4、如果日志鍵值對表中不包含所述待處理日志數據,將所述待處理日志數據存儲至日志文件;其中,所述日志鍵值對表中包括日志數據和日志數據對應的時間戳;
5、如果所述日志鍵值對表中包含所述待處理日志數據,確定所述待處理日志數據在所述日志輸出隊列中對應的時間戳和在所述日志鍵值對表中對應的時間戳的時間差值;
6、如果所述時間差值大于預設時間段,將所述待處理日志數據存儲至日志文件;
7、將所述待處理日志數據和所述待處理日志數據對應的時間戳更新至所述日志鍵值對表。
8、可選的,在所述將所述待處理日
9、如果所述日志鍵值對表中包含的日志鍵值對的數量達到預設鍵值對數量,從所述日志鍵值對表中包含的日志鍵值對中選取目標日志鍵值對,將所述目標日志鍵值對刪除。
10、可選的,所述從所述日志鍵值對表中包含的日志鍵值對中選取目標日志鍵值對,包括:
11、利用最近最少使用算法,從所述日志鍵值對表中包含的日志鍵值對中選取最近最少使用的日志鍵值對作為目標日志鍵值對。
12、可選的,在所述從日志輸出隊列中依次獲取每個待處理日志數據和所述待處理日志數據對應的時間戳之前,所述方法還包括:
13、對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列。
14、可選的,所述日志寫入隊列中包括業務線程輸出的日志數據;
15、所述方法還包括:
16、在所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列之前,獲取互斥鎖和條件變量,所述互斥鎖用于在執行對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列的過程中,拒絕所述業務線程訪問所述日志寫入隊列;所述條件變量用于在所述日志寫入隊列非空時,執行所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列;
17、在處理完所述日志輸出隊列中的待處理日志數據后,釋放所述互斥鎖和所述條件變量。
18、可選的,所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列,包括:
19、在接收到所述業務線程發送的日志寫入通知消息后,對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列。
20、可選的,所述將所述待處理日志數據和所述待處理日志數據對應的時間戳更新至所述日志鍵值對表,包括:
21、如果所述日志鍵值對表中不包含所述待處理日志數據和所述待處理日志數據對應的時間戳,將所述待處理日志數據和所述待處理日志數據對應的時間戳添加至所述日志鍵值對表中;
22、如果所述日志鍵值對表中已包含所述待處理日志數據和所述待處理日志數據對應的時間戳,將所述日志鍵值對表中已包含的所述待處理日志數據和所述待處理日志數據對應的時間戳刪除,并將所述待處理日志數據和所述待處理日志數據對應的時間戳添加至所述日志鍵值對表。
23、可選的,所述日志數據包括以下一種或多種:日志信息、所述日志信息所對應代碼的行號、日志信息所在的文件名和日志信息所在的函數名。
24、根據本申請的第二方面,提供了一種日志處理裝置,包括:
25、數據獲取模塊,用于從日志輸出隊列中依次獲取每個待處理日志數據和所述待處理日志數據對應的時間戳;
26、日志輸出模塊,用于如果日志鍵值對表中不包含所述待處理日志數據,將所述待處理日志數據存儲至日志文件;其中,所述日志鍵值對表中包括日志數據和日志數據對應的時間戳;
27、時間差值確定模塊,用于如果所述日志鍵值對表中包含所述待處理日志數據,確定所述待處理日志數據在所述日志輸出隊列中對應的時間戳和在所述日志鍵值對表中對應的時間戳的時間差值;
28、所述日志輸出模塊,還用于如果所述時間差值大于預設時間段,將所述待處理日志數據存儲至日志文件;
29、日志鍵值對表更新模塊,用于將所述待處理日志數據和所述待處理日志數據對應的時間戳更新至所述日志鍵值對表。
30、可選的,所述日志處理裝置還包括:
31、目標日志鍵值對選取模塊,用于如果所述日志鍵值對表中包含的日志鍵值對的數量達到預設鍵值對數量,從所述日志鍵值對表中包含的日志鍵值對中選取目標日志鍵值對;
32、目標日志鍵值對刪除模塊,用于將所述目標日志鍵值對刪除。
33、可選的,所述目標日志鍵值對選取模塊,具體用于利用最近最少使用算法,從所述日志鍵值對表中包含的日志鍵值對中選取最近最少使用的日志鍵值對作為目標日志鍵值對。
34、可選的,所述日志處理裝置還包括:
35、日志隊列交換模塊,用于對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列。
36、可選的,所述日志寫入隊列中包括業務線程輸出的日志數據;
37、所述日志處理裝置400還包括:
38、互斥鎖和條件變量獲取模塊,用于在所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列之前,獲取互斥鎖和條件變量,所述互斥鎖用于在執行對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列的過程中,拒絕所述業務線程訪問所述日志寫入隊列;所述條件變量用于在所述日志寫入隊列非空時,執行所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志本文檔來自技高網...
【技術保護點】
1.一種日志處理方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,在所述將所述待處理日志數據和所述待處理日志數據對應的時間戳更新至所述日志鍵值對表之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述從所述日志鍵值對表中包含的日志鍵值對中選取目標日志鍵值對,包括:
4.根據權利要求1所述的方法,其特征在于,在所述從日志輸出隊列中依次獲取每個待處理日志數據和所述待處理日志數據對應的時間戳之前,所述方法還包括:
5.根據權利要求4所述的方法,其特征在于,所述日志寫入隊列中包括業務線程輸出的日志數據;
6.根據權利要求5所述的方法,其特征在于,所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日志寫入隊列作為日志輸出隊列,包括:
7.根據權利要求1所述的方法,其特征在于,所述將所述待處理日志數據和所述待處理日志數據對應的時間戳更新至所述日志鍵值對表,包括:
8.根據權利要求1所述的方法,其特征在于,所述日志數據包括以下一種
9.一種日志處理裝置,其特征在于,所述裝置包括:
10.一種電子設備,其特征在于,包括:處理器,所述處理器用于執行存儲于存儲器的計算機程序,所述計算機程序被處理器執行時實現權利要求1-8任一項所述的日志處理方法。
11.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現權利要求1-8任一項所述的日志處理方法。
...【技術特征摘要】
1.一種日志處理方法,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,在所述將所述待處理日志數據和所述待處理日志數據對應的時間戳更新至所述日志鍵值對表之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述從所述日志鍵值對表中包含的日志鍵值對中選取目標日志鍵值對,包括:
4.根據權利要求1所述的方法,其特征在于,在所述從日志輸出隊列中依次獲取每個待處理日志數據和所述待處理日志數據對應的時間戳之前,所述方法還包括:
5.根據權利要求4所述的方法,其特征在于,所述日志寫入隊列中包括業務線程輸出的日志數據;
6.根據權利要求5所述的方法,其特征在于,所述對日志輸出隊列進行清空操作,并將清空后的日志輸出隊列作為日志寫入隊列,將包含日志數據的日...
【專利技術屬性】
技術研發人員:張意姝,
申請(專利權)人:北京羅克維爾斯科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。