本發(fā)明專利技術(shù)公開一種在系統(tǒng)中異步記錄日志的方法和裝置,該方法包括以下步驟:a.初始化步驟,在該步驟中,對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),創(chuàng)建異步寫線程;b.寫步驟,在該步驟中,利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。
【技術(shù)實(shí)現(xiàn)步驟摘要】
本專利技術(shù)涉及計(jì)算機(jī)系統(tǒng)的日志生成,并且尤其涉及在系統(tǒng)中異步記錄日志的方法和裝置。
技術(shù)介紹
目前基本上所有的系統(tǒng)都需要在運(yùn)行時(shí)由系統(tǒng)中的應(yīng)用程序記錄日志。通過(guò)日志監(jiān)控,運(yùn)維人員可以在第一時(shí)間內(nèi)獲取系統(tǒng)的各種應(yīng)用程序的報(bào)錯(cuò)信息。如果記錄日志的操作不采用任何保護(hù)措施,例如,當(dāng)日志所在的文件系統(tǒng)或者磁盤損壞或發(fā)送異常時(shí),記錄日志的應(yīng)用程序會(huì)出現(xiàn)掛死等情況,這會(huì)影響整個(gè)系統(tǒng)的正常運(yùn)行。目前針對(duì)日志記錄主要有兩種保護(hù)方式。一種是硬件方式,包括采用冗余磁盤陣列等;另外一種是軟件方式,包括采用LINUX平臺(tái)上的aio等。對(duì)于硬件保護(hù)方式,當(dāng)磁盤系統(tǒng)發(fā)生異常的時(shí)候,冗余磁盤陣列無(wú)法做到無(wú)縫切換,此外該方式也無(wú)法應(yīng)對(duì)文件系統(tǒng)異常的情況。對(duì)于軟件保護(hù)方式,雖然可以同時(shí)應(yīng)對(duì)磁盤異常和文件系統(tǒng)異常,但是這種方式只適用于特定的平臺(tái)。而且在使用例如aio的時(shí)候,還需要在主機(jī)系統(tǒng)上啟動(dòng)大量的aio管理進(jìn)程,這對(duì)于日志記錄量很小的情況,將造成對(duì)主機(jī)資源的浪費(fèi)。
技術(shù)實(shí)現(xiàn)思路
根據(jù)本專利技術(shù)的一個(gè)目的,公開一種在系統(tǒng)中異步記錄日志的方法,包括以下步驟:a.?初始化步驟,在該步驟中,對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),創(chuàng)建異步寫線程;b.?寫步驟,在該步驟中,利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。優(yōu)選地,所述通訊管道還用于向所述應(yīng)用程序發(fā)送通訊管道狀態(tài)。優(yōu)選地,在初始化步驟中配置異步寫線程的數(shù)量,使其適于處理通訊管道中的日志數(shù)據(jù)。優(yōu)選地,所述方法還包括管理步驟,在該步驟中,監(jiān)控異步寫線程的工作狀態(tài),以便當(dāng)發(fā)現(xiàn)異步寫線程掛死時(shí)重啟對(duì)應(yīng)的線程。根據(jù)本專利技術(shù)的另一個(gè)目的,公開一種在系統(tǒng)中異步記錄日志的裝置,包括以下模塊:a.?初始化模塊,該模塊被配置成,對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),創(chuàng)建異步寫線程;b.?寫模塊,該模塊被配置成,利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。優(yōu)選地,所述通訊管道被配置成向所述應(yīng)用程序發(fā)送通訊管道狀態(tài)。優(yōu)選地,初始化模塊用于配置異步寫線程的數(shù)量,使其適于處理通訊管道中的日志數(shù)據(jù)。優(yōu)選地,所述裝置還包括管理模塊,該模塊被配置成,監(jiān)控異步寫線程的工作狀態(tài),以便當(dāng)發(fā)現(xiàn)異步寫線程掛死時(shí)重啟對(duì)應(yīng)的線程。本專利技術(shù)的一個(gè)優(yōu)勢(shì)在于,本專利技術(shù)的異步記錄日志的方法和裝置能夠應(yīng)對(duì)包括文件系統(tǒng)異常和磁盤異常等的各種情景,系統(tǒng)資源占有率相比于aio等方式大幅降低。本專利技術(shù)具有很強(qiáng)的適用性,可以用于UNIX、LINUX、WINDOWS等各個(gè)平臺(tái)。附圖說(shuō)明在參照附圖閱讀了本專利技術(shù)的具體實(shí)施方式以后,本領(lǐng)域技術(shù)人員將會(huì)更清楚地了解本專利技術(shù)的各個(gè)方面。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,這些附圖僅僅用于配合具體實(shí)施方式說(shuō)明本專利技術(shù)的技術(shù)方案,而并非意在對(duì)本專利技術(shù)的保護(hù)范圍構(gòu)成限制。其中,圖1是根據(jù)本專利技術(shù)實(shí)施例的在系統(tǒng)中異步記錄日志的方法的步驟示意圖。圖2是根據(jù)本專利技術(shù)實(shí)施例的在系統(tǒng)中異步記錄日志的裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式下面參照附圖,對(duì)本專利技術(shù)的具體實(shí)施方式作進(jìn)一步的詳細(xì)描述。在下面的描述中,為了解釋的目的,陳述許多具體細(xì)節(jié)以便提供對(duì)實(shí)施例的一個(gè)或多個(gè)方面的透徹理解。圖1是根據(jù)本專利技術(shù)實(shí)施例的在系統(tǒng)中異步記錄日志的方法的步驟示意圖。如圖1所示,在系統(tǒng)中異步記錄日志的方法可以包括初始化步驟、寫步驟和可選的管理步驟。在初始化步驟中,對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),以及創(chuàng)建異步寫線程。在寫步驟中,利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。例如,當(dāng)某一個(gè)異步寫線程接收到通訊管道中的日志數(shù)據(jù)時(shí),立即將其寫入到日志文件中,即使此時(shí)文件系統(tǒng)或者磁盤異常,也只是異步寫線程掛死,不會(huì)影響記錄日志的應(yīng)用程序。在管理步驟中,監(jiān)控異步寫線程的工作狀態(tài),以便當(dāng)發(fā)現(xiàn)異步寫線程掛死時(shí)重啟對(duì)應(yīng)的線程。優(yōu)選地,通訊管道還用于向應(yīng)用程序發(fā)送通訊管道狀態(tài)。從而當(dāng)所述通訊管道不能處理來(lái)自所述應(yīng)用程序的日志數(shù)據(jù)時(shí),所述應(yīng)用程序不會(huì)出現(xiàn)掛死等情況。應(yīng)用程序能夠?qū)⑷罩緮?shù)據(jù)“非阻塞”寫入通訊管道。在另一個(gè)實(shí)施例中,在初始化步驟中配置異步寫線程的數(shù)量,使其適于處理通訊管道中的日志數(shù)據(jù)。或者,在寫步驟中根據(jù)日志數(shù)據(jù)的量來(lái)調(diào)整異步寫線程的數(shù)量。圖2是根據(jù)本專利技術(shù)實(shí)施例的在系統(tǒng)中異步記錄日志的裝置的結(jié)構(gòu)示意圖。如圖所示,在系統(tǒng)中異步記錄日志的裝置包括初始化模塊、寫模塊和可選的管理模塊。其中,初始化模塊被配置成對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),創(chuàng)建異步寫線程。寫模塊被配置成利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。管理模塊可以被配置成,監(jiān)控異步寫線程的工作狀態(tài),以便當(dāng)發(fā)現(xiàn)異步寫線程掛死時(shí)重啟對(duì)應(yīng)的線程。在一個(gè)實(shí)施例中,所述通訊管道被配置成向所述應(yīng)用程序發(fā)送通訊管道狀態(tài)。在一個(gè)實(shí)施例中,初始化模塊用于配置異步寫線程的數(shù)量,使其適于處理通訊管道中的日志數(shù)據(jù)。本專利技術(shù)通過(guò)通訊管道和異步寫線程與日志文件進(jìn)行通訊。當(dāng)記錄日志的應(yīng)用程序需要記錄日志的時(shí)候,會(huì)通過(guò)通訊管道將日志數(shù)據(jù)發(fā)送給寫模塊,由于應(yīng)用程序(報(bào)錯(cuò)應(yīng)用)和管道之間采用非阻塞的方式進(jìn)行交互并且應(yīng)用程序也不會(huì)調(diào)用任何寫日志的操作,因此磁盤或者文件系統(tǒng)異常不會(huì)影響到報(bào)錯(cuò)應(yīng)用的正常運(yùn)行。盡管可以僅關(guān)于若干實(shí)施方式中的一個(gè)公開了實(shí)施例的特定特征或方面,但可針對(duì)任何給定的或特定的應(yīng)用所期望和有利的那樣,這種特征或方面可與其他實(shí)施方式的一種或多個(gè)其他特征或方面相組合。通過(guò)以上實(shí)施方式的描述,本領(lǐng)域中的普通技術(shù)人員能夠理解,在不偏離本專利技術(shù)的精神和范圍的情況下,還可以對(duì)本專利技術(shù)的具體實(shí)施方式作各種變更和替換。這些變更和替換都落在本專利技術(shù)權(quán)利要求書所限定的范圍內(nèi)。本文檔來(lái)自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種在系統(tǒng)中異步記錄日志的方法,其特征在于,包括以下步驟:a.?初始化步驟,在該步驟中,對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),創(chuàng)建異步寫線程;b.?寫步驟,在該步驟中,利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。
【技術(shù)特征摘要】
1.?一種在系統(tǒng)中異步記錄日志的方法,其特征在于,包括以下步驟:
a.?初始化步驟,在該步驟中,
對(duì)系統(tǒng)中的記錄日志的應(yīng)用程序進(jìn)行初始化配置,
創(chuàng)建通訊管道,用于接收來(lái)自所述應(yīng)用程序的日志數(shù)據(jù),
創(chuàng)建異步寫線程;
b.?寫步驟,在該步驟中,
利用異步寫線程從所述通訊管道讀取日志數(shù)據(jù),以及將讀取的日志數(shù)據(jù)寫入日志文件。
2.?如權(quán)利要求1所述的方法,其特征在于,
所述通訊管道還用于向所述應(yīng)用程序發(fā)送通訊管道狀態(tài)。
3.?如權(quán)利要求1所述的方法,其特征在于,
在初始化步驟中配置異步寫線程的數(shù)量,使其適于處理通訊管道中的日志數(shù)據(jù)。
4.?如權(quán)利要求1所述的方法,其特征在于,
所述方法還包括管理步驟,在該步驟中,監(jiān)控異步寫線程的工作狀態(tài),以便當(dāng)發(fā)現(xiàn)異步寫線程掛死時(shí)重啟對(duì)應(yīng)的線程。
5.?...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:邱鵬,楊燕明,
申請(qǐng)(專利權(quán))人:中國(guó)銀聯(lián)股份有限公司,
類型:發(fā)明
國(guó)別省市:上海;31
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。