本申請涉及計算機,具體而言,涉及一種嵌入式設備的日志記錄方法、裝置、電子設備及介質。
背景技術:
1、嵌入式系統是以應用為中心,以計算機技術為基礎,并且軟硬件可裁剪,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統,如今嵌入式系統已在多個不同領域得到廣泛應用。隨著嵌入式設備的交付使用,技術更新迭代,日志管理屬于嵌入式設備廠家必須考慮的問題,為了便于提供后續保障服務,需要提供穩定的日志記錄及查詢機制。
2、然而,現有技術中通常采用調用日志記錄函數的方式來記錄嵌入式設備的日志數據,經常出現多線程搶占,導致日志記錄錯亂及日志記錄效率低的問題。
技術實現思路
1、有鑒于此,本申請的目的在于提供一種嵌入式設備的日志記錄方法、裝置、電子設備及介質,以解決因多線程搶占,導致日志記錄錯亂及日志記錄效率低的問題。
2、第一方面,本申請實施例提供了一種嵌入式設備的日志記錄方法,包括:
3、從業務核心程序對應的多個線程中選取用于記錄日志的日志記錄線程,并建立日志記錄線程與其余線程之間的有名管道;
4、創建用于反映其余線程中預設數據事件的觸發情況的結構體數組,結構體數組中的每個元素對應一個有名管道;
5、利用日志記錄線程對結構體數組中每個有名管道下的預設數據事件進行監測,以根據監控結果生成最終的日志記錄。
6、可選地,利用日志記錄線程對結構體數組中每個有名管道下的預設數據事件進行監測,包括:利用日志記錄線程調用系統調用函數,通過系統調用函數對結構體數組中每個有名管道下的預設數據事件進行輪詢監測,系統調用函數用于監控多個文件描述符狀態變化。
7、可選地,創建用于反映其余線程中預設數據事件的觸發情況的結構體數組,包括:根據有名管道的數量創建結構體數組;針對結構體數組中的每個元素,設置該元素對應的有名管道及有名管道對應的預設數據事件。
8、可選地,通過系統調用函數對結構體數組中每個有名管道下的預設數據事件進行輪詢監測,包括:獲取系統調用函數的返回值,并確定返回值是否大于預設閾值;若大于預設閾值,則遍歷結構體數組中每個元素,以確定觸發預設數據事件的目標有名管道。
9、可選地,通過以下方式生成最終的日志記錄:針對目標有名管道,根據該目標有名管道對應的預設數據事件獲取日志數據;利用日志記錄函數對日志數據進行處理,以獲取最終的日志記錄。
10、可選地,利用日志記錄函數對日志數據進行處理,以獲取最終的日志記錄,包括:從日志數據中提取目標日志信息;利用目標日志信息填充日志記錄結構體,并根據當前系統時間獲取日志時間頭信息;根據日志數據對應的日志類別及日志時間頭信息,生成最終的日志記錄。
11、可選地,并根據當前系統時間獲取日志時間頭信息,包括:調用日志文件路徑索引函數,確定日志時間對應的時間索引類別;生成時間索引類別對應的目標文件路徑,以根據目標文件路徑獲取日志時間頭信息。
12、第二方面,本申請實施例還提供了一種嵌入式設備的日志記錄裝置,所述裝置包括:
13、記錄線程選取模塊,用于從業務核心程序對應的多個線程中選取用于記錄日志的日志記錄線程,并建立日志記錄線程與其余線程之間的有名管道;
14、結構體創建模塊,用于創建用于反映其余線程中預設數據事件的觸發情況的結構體數組,結構體數組中的每個元素對應一個有名管道;
15、事件監測模塊,用于利用日志記錄線程對結構體數組中每個有名管道下的預設數據事件進行監測,以根據監控結果生成最終的日志記錄。
16、第三方面,本申請實施例還提供一種電子設備,包括:處理器、存儲器和總線,所述存儲器存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲器之間通過總線通信,所述機器可讀指令被所述處理器執行時執行如上述的嵌入式設備的日志記錄方法的步驟。
17、第四方面,本申請實施例還提供一種計算機可讀存儲介質,該計算機可讀存儲介質上存儲有計算機程序,該計算機程序被處理器運行時執行如上述的嵌入式設備的日志記錄方法的步驟。
18、本申請實施例帶來了以下有益效果:
19、本申請實施例提供的一種嵌入式設備的日志記錄方法、裝置、電子設備及介質,能夠在嵌入式設備多線程并發時,通過選取的日志記錄線程專門對日志數據進行記錄,其他業務線程建立有名管道,避免了因單純調用日志記錄函數記錄日志數據時,多線程之間相互搶占造成的內容記錄不全及處理時間過長的問題,與現有技術中的嵌入式設備的日志記錄方法相比,解決了因多線程搶占,導致日志記錄錯亂及日志記錄效率低的問題。
20、為使本申請的上述目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
1.一種嵌入式設備的日志記錄方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述利用所述日志記錄線程對所述結構體數組中每個有名管道下的預設數據事件進行監測,包括:
3.根據權利要求1所述的方法,其特征在于,所述創建用于反映所述其余線程中預設數據事件的觸發情況的結構體數組,包括:
4.根據權利要求2所述的方法,其特征在于,所述通過所述系統調用函數對所述結構體數組中每個有名管道下的預設數據事件進行輪詢監測,包括:
5.根據權利要求4所述的方法,其特征在于,通過以下方式生成最終的日志記錄:
6.根據權利要求5所述的方法,其特征在于,所述利用日志記錄函數對所述日志數據進行處理,以獲取最終的日志記錄,包括:
7.根據權利要求6所述的方法,其特征在于,所述并根據當前系統時間獲取日志時間頭信息,包括:
8.一種嵌入式設備的日志記錄裝置,其特征在于,包括:
9.一種電子設備,其特征在于,包括:處理器、存儲介質和總線,所述存儲介質存儲有所述處理器可執行的機器可讀指令,當電子設備運行時,所述處理器與所述存儲介質之間通過總線通信,所述處理器執行所述機器可讀指令,以執行如權利要求1至7中任一項所述的嵌入式設備的日志記錄方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器運行時執行如權利要求1至7中任一項所述的嵌入式設備的日志記錄方法的步驟。