專利名稱:一種日志記錄的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及文件處理技術(shù)領(lǐng)域,具體涉及一種日志記錄的方法,一種日志記錄的裝置,以及,一種日志記錄的系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)設(shè)備、系統(tǒng)及服務(wù)程序等,在運(yùn)作時(shí)都會(huì)產(chǎn)生一個(gè)叫日志(log)的事件記錄;每一行日志都記載著日期、時(shí)間、使用者及動(dòng)作等相關(guān)操作的描述。日志是查看系統(tǒng)運(yùn)行狀態(tài)和排查問題的主要依據(jù)。日志可以用來對(duì)線上業(yè)務(wù)運(yùn)行過程的記錄和運(yùn)行程序的監(jiān)控,通過分析記錄的日志可以為出現(xiàn)和可能出現(xiàn)的錯(cuò)誤進(jìn)行提示、警告,還可以統(tǒng)計(jì)業(yè)務(wù)標(biāo)識(shí)信息,為業(yè)務(wù)邏輯改進(jìn)和應(yīng)用程序升級(jí)提供可靠的依據(jù)。例如,某個(gè)軟件中應(yīng)用程序出現(xiàn)崩潰情況,那么可以從程序事件日志中找到相應(yīng)的記錄,從而幫助分析并解決問題。現(xiàn)有技術(shù)中,日志記錄的內(nèi)容通常是海量的,以諸如電子支付系統(tǒng)等線上系統(tǒng)的日志記錄為例,一筆支付交易,往往會(huì)產(chǎn)生多條日志記錄,并且,并發(fā)的多筆交易產(chǎn)生的記錄往往會(huì)交錯(cuò)層疊的記錄下來,在這種情況下,相關(guān)技術(shù)人員如果想要查詢系統(tǒng)中某個(gè)或某幾個(gè)功能模塊的運(yùn)行情況,或?qū)δ硞€(gè)出錯(cuò)的問題排查的效率是比較低的,比如,用戶需要查詢?cè)谝欢螘r(shí)間內(nèi)系統(tǒng)調(diào)用了哪些服務(wù),服務(wù)的調(diào)用順序是怎樣的?系統(tǒng)拋出的出錯(cuò)報(bào)警涉及的模塊有哪些?這些模塊都是采取的哪種恢復(fù)操作?在日志量較大的情況,要從系統(tǒng)日志繁雜的信息中查詢出上述信息,顯然是一個(gè)非常耗時(shí)耗力的過程。因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問題就是如何能夠創(chuàng)新地提出一種日志記錄的方法,用以在減少日志數(shù)據(jù)存儲(chǔ)資源占用的基礎(chǔ)上,提高定位日志及報(bào)告異常日志的效率。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種日志記錄的方法,相應(yīng)的一種日志記錄的裝置。依據(jù)本發(fā)明的一個(gè)方面,提供了一種日志記錄的方法,包括獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí);當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理;在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù)。可選地,所述日志數(shù)據(jù)中還包括記錄時(shí)間;所述的方法還包括 將所述按特征信息標(biāo)識(shí)組織的日志數(shù)據(jù),按照所述記錄時(shí)間進(jìn)行排序??蛇x地,所述方法用于交易平臺(tái)的日志記錄,所述特征信息標(biāo)識(shí)為交易平臺(tái)中每筆交易的交易流水號(hào)。可選地,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名中包含所述日志級(jí)別標(biāo)識(shí)的配置文件;
所述當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中的步驟包括檢查指定目錄下是否存在具有包含相應(yīng)日志級(jí)別標(biāo)識(shí)的文件名的配置文件;若是,則將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中??蛇x地,所述日志數(shù)據(jù)中還包括業(yè)務(wù)標(biāo)識(shí)信息,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名包含所述業(yè)務(wù)標(biāo)識(shí)信息日志級(jí)別標(biāo)識(shí)的配置文件;所述當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中的步驟包括
·
檢查指定目錄下是否存在具有包含相應(yīng)業(yè)務(wù)標(biāo)識(shí)信息和日志級(jí)別標(biāo)識(shí)的文件名的配置文件;若是,則將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中。可選地,所述日志數(shù)據(jù)中還包括進(jìn)程信息和/或線程信息,和/或,業(yè)務(wù)操作信息。根據(jù)本發(fā)明的另一方面,提供了一種日志記錄的裝置,包括日志數(shù)據(jù)獲取模塊,用于獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí);日志文件檢測(cè)模塊,用于判斷是否存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件,若是,則調(diào)用日志寫入模塊;日志寫入模塊,用于將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理;日志數(shù)據(jù)組織模塊,用于在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù)??蛇x地,所述日志數(shù)據(jù)中還包括記錄時(shí)間;所述的裝置還包括排序模塊,用于將所述按特征信息標(biāo)識(shí)組織的日志數(shù)據(jù),按照所述記錄時(shí)間進(jìn)行排序??蛇x地,所述裝置用于交易平臺(tái)的日志記錄,所述特征信息標(biāo)識(shí)為交易平臺(tái)中每筆交易的交易流水號(hào)??蛇x地,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名中包含所述日志級(jí)別標(biāo)識(shí)的配置文件。 可選地,所述日志數(shù)據(jù)中還包括業(yè)務(wù)標(biāo)識(shí)信息,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名包含所述業(yè)務(wù)標(biāo)識(shí)信息日志級(jí)別標(biāo)識(shí)的配置文件。可選地,所述日志數(shù)據(jù)中還包括進(jìn)程信息和/或線程信息,和/或,業(yè)務(wù)操作信息。本發(fā)明在日志記錄的過程中,將滿足日志級(jí)別條件的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中,預(yù)設(shè)的進(jìn)程可以對(duì)所述配置文件進(jìn)行掃描并發(fā)起異常日志的提醒處理,同時(shí)所有的日志數(shù)據(jù)將按照特征信息標(biāo)識(shí)進(jìn)行組織,從而提高定位日志及報(bào)告異常日志的效率。在只針對(duì)所有日志級(jí)別中的某一個(gè)或某幾個(gè)日志級(jí)別設(shè)置配置文件的情況下,本發(fā)明實(shí)施例可以有效減少日志文件所占用的存儲(chǔ)空間。并通過日志文件動(dòng)態(tài)配置的方式,使得日志的管理更加靈活,從而保證在日志文件中所儲(chǔ)存的信息大部分是有價(jià)值的信息,對(duì)于用戶查詢?nèi)罩镜牟僮鞫?,也有利于用戶操作效率的提高。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式
。
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā) 明一個(gè)實(shí)施例的一種日志記錄的方法實(shí)施例I的步驟流程圖;圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種日志記錄的方法實(shí)施例2的步驟流程圖;圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種日志記錄的裝置實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施例方式下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。本發(fā)明實(shí)施例的核心構(gòu)思之一,在日志記錄的過程中,將滿足日志級(jí)別條件的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中,預(yù)設(shè)的進(jìn)程可以對(duì)所述配置文件進(jìn)行掃描并發(fā)起異常日志的提醒處理,同時(shí)所有的日志數(shù)據(jù)將按照特征信息標(biāo)識(shí)進(jìn)行組織,從而提高定位日志及報(bào)告異常日志的效率。參照?qǐng)D1,其示出了本發(fā)明的一種日志記錄的方法實(shí)施例I的步驟流程圖,具體可以包括如下步驟步驟101,獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí);在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志級(jí)別可以由本領(lǐng)域技術(shù)人員根據(jù)實(shí)際情況進(jìn)行設(shè)置。例如,配置日志所有可用的級(jí)別為INF0,DEBUG, ERROR, WARN,F(xiàn)ATAL;其中,INFO是指所有關(guān)鍵的動(dòng)作點(diǎn)以及結(jié)果;DEBUG是指為了調(diào)試整個(gè)系統(tǒng)而打開的一些調(diào)試信息,在系統(tǒng)穩(wěn)定運(yùn)行的時(shí)候,可以關(guān)閉該信息;ERROR表示系統(tǒng)發(fā)生了一些錯(cuò)誤,將錯(cuò)誤的信息記錄下來;WARN是指為了記錄當(dāng)系統(tǒng)接近一些資源臨界值或者已經(jīng)出現(xiàn)了一些資源不夠用或者系統(tǒng)錯(cuò)誤,暫時(shí)還不至于影響整個(gè)系統(tǒng)的運(yùn)行但需要引起關(guān)注的信息;FATAL表示已經(jīng)出現(xiàn)了很嚴(yán)重的問題,需要停止系統(tǒng)的信息?;蛉?,配置一種半導(dǎo)體工廠設(shè)備控制系統(tǒng)日志所有可用的級(jí)別為Verbose (詳細(xì)信息),Event(事件),Prob I em(問題),Error (錯(cuò)誤),Fatal (致命錯(cuò)誤)五個(gè)級(jí)別。作為本發(fā)明實(shí)施例在交易平臺(tái)中具體應(yīng)用的一種示例,所述特征信息標(biāo)識(shí)可以為交易平臺(tái)中每筆交易的交易流水號(hào)。公知的是,交易平臺(tái)通常用于消費(fèi)者、商家和金融機(jī)構(gòu)之間使用安全電子手段交換商品或服務(wù),即把新型支付手段(包括電子現(xiàn)金(E-CASH)、信用卡(CREDIT CARD)、借記卡(DEBIT CARD)、智能卡等)的支付信息通過網(wǎng)絡(luò)安全傳送到銀行或相應(yīng)的處理機(jī)構(gòu),以實(shí)現(xiàn)電子支付?;谝陨辖灰灼脚_(tái)的特點(diǎn),本專利發(fā)明人發(fā)現(xiàn)交易平臺(tái)的日志需要滿足以下的需求I、信息覆蓋點(diǎn)需要全面因?yàn)榻灰灼脚_(tái)涉及到錢,那么對(duì)于安全性的要求就會(huì)很高,由于交易平臺(tái)會(huì)以電子貨幣的方式來記錄資金的流向的,所以,系統(tǒng)應(yīng)該對(duì)每個(gè)關(guān)鍵位置的操作過程和結(jié)果都進(jìn)行記錄,以便能夠支持對(duì)交易整個(gè)過程的檢索,一旦某個(gè)環(huán)節(jié)發(fā)生了問題,可以很清晰快捷地定位問題,尋找失敗或者錯(cuò)誤的發(fā)生點(diǎn)。2、日志記錄需要盡量精簡(jiǎn)過于詳細(xì)的日志記錄,會(huì)帶來較大的讀寫磁盤的I/O開銷,這樣會(huì)對(duì)整個(gè)交易平臺(tái)帶來影響,造成用戶等待時(shí)間過長(zhǎng),用戶體驗(yàn)很差,所以日志同時(shí)需要滿足盡量精簡(jiǎn)的要求。3、日志記錄需要主線一條交易的完成通常會(huì)有多次交互,往往會(huì)產(chǎn)生多條日志記錄,這些記錄往往不是連續(xù)性記錄的,會(huì)被穿插記錄在日志文件里面,尤其在支持高并發(fā)需求的設(shè)計(jì)下,支付系統(tǒng)往往采用的是多線程I/o復(fù)用的架構(gòu)模型,同時(shí)并發(fā)的多筆交易 產(chǎn)生的記錄往往會(huì)交錯(cuò)層疊的記錄下來。由于一條交易的多條日志記錄會(huì)被穿插記錄在日志文件里面,所以需要有唯一的序列號(hào)來標(biāo)識(shí)當(dāng)前交易。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述特征信息標(biāo)識(shí)可以為當(dāng)前交易的流水號(hào),因?yàn)槊抗P交易需要有自己在交易平臺(tái)內(nèi)唯一的一個(gè)流水號(hào)來進(jìn)行標(biāo)識(shí),而伴隨該交易產(chǎn)生的每一筆日志也需要唯一的一個(gè)特征信息標(biāo)識(shí)號(hào)來進(jìn)行標(biāo)識(shí),它們具有相同的需求和特點(diǎn),故在本發(fā)明實(shí)施例中,使用交易平臺(tái)的交易流水號(hào)作為日志數(shù)據(jù)中的特征信息標(biāo)識(shí)。所述交易流水號(hào)的產(chǎn)生有其相應(yīng)的規(guī)則,例如,所述交易流水號(hào)可以依據(jù)服務(wù)器網(wǎng)卡的MAC地址,記錄時(shí)間和隨機(jī)數(shù)生成。從而保證交易流水號(hào)具有相對(duì)的唯一性,在一段時(shí)間內(nèi)、在不同的機(jī)器上不會(huì)重復(fù)。在具體實(shí)現(xiàn)中,所述日志數(shù)據(jù)可以采用逐行記錄的方式,在本發(fā)明實(shí)施例中,每行日志數(shù)據(jù)都至少包括日志級(jí)別和特征信息標(biāo)識(shí)。步驟102,當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件可以為根據(jù)所述日志級(jí)別標(biāo)識(shí)設(shè)置文件名的配置文件;在這種情況下,所述步驟102可以包括如下子步驟子步驟Sll,檢查指定目錄下是否存在具有包含相應(yīng)日志級(jí)別標(biāo)識(shí)的文件名的配置文件;若是,則執(zhí)行子步驟S12,否則執(zhí)行子步驟S13 ;子步驟S12,將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中;子步驟S13,不在配置文件中寫入所述日志數(shù)據(jù)。例如,假設(shè)日志所有可用的級(jí)別為INFO,DEBUG, ERROR, WARN,F(xiàn)ATAL,對(duì)應(yīng)的日志級(jí)別標(biāo)識(shí)為INF0,DEBUG, ERROR, WARN, FATAL,預(yù)置的配置文件包括 ERROR, xxx, WARN, xxx,FATAL, xxx,假設(shè)當(dāng)前一條日志數(shù)據(jù)中包括日志級(jí)別INF0,檢查發(fā)現(xiàn)沒有對(duì)應(yīng)文件名的配置文件,于是不需要在配置文件中記錄這條日志數(shù)據(jù)。假設(shè)當(dāng)前又一條日志數(shù)據(jù)中包括日志級(jí)別ERROR,檢索發(fā)現(xiàn)存在對(duì)應(yīng)文件名的配置文件ERROR, xxx,于是將這條日志數(shù)據(jù)寫入ERROR, xxx這個(gè)文件中。
在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述日志數(shù)據(jù)中還可以包括業(yè)務(wù)標(biāo)識(shí)信息,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件可以為文件名包含所述業(yè)務(wù)標(biāo)識(shí)信息日志級(jí)別標(biāo)識(shí)的配置文件。在這種情況下,所述步驟102可以包括如下子步驟子步驟S21,檢查指定目錄下是否存在具有包含相應(yīng)日志級(jí)別標(biāo)識(shí)的文件名的配置文件;若是,則執(zhí)行子步驟S22,否則執(zhí)行子步驟S23 ;子步驟S22,將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中。子步驟S23,不在配置文件中寫入所述日志數(shù)據(jù)。例如,假設(shè)日志所有可用的級(jí)別包括INF0,DEBUG, ERROR, WARN,F(xiàn)ATAL,對(duì)應(yīng)的日志級(jí)別標(biāo)識(shí)為INF0,DEBUG, ERROR, WARN,F(xiàn)ATAL,可用的業(yè)務(wù)標(biāo)識(shí)信息包括收款業(yè)務(wù)RecvService,預(yù)置的配置文件包括 RecvService_WARN_log. xxx, RecvService_FATAL_log.xxx,假設(shè)當(dāng)前一條日志數(shù)據(jù)中包括業(yè)務(wù)標(biāo)識(shí)信息RecvService和日志級(jí)別INFO,檢查發(fā)現(xiàn)沒有對(duì)應(yīng)文件名的配置文件,于是不需要在配置文件中記錄這條日志數(shù)據(jù)。假設(shè)當(dāng)前又一·條日志數(shù)據(jù)中包括業(yè)務(wù)標(biāo)識(shí)信息RecvService和日志級(jí)別WARN,檢索發(fā)現(xiàn)存在對(duì)應(yīng)文件名的配置文件RecvService_WARN_log. xxx,于是將這條日志數(shù)據(jù)寫入RecvService_WARN_log. xxx這個(gè)文件中。根據(jù)上述示例可以理解,所述日志數(shù)據(jù)是否需要寫入配置文件中是可以配置的。在具體實(shí)現(xiàn)中,可以在指定目錄下創(chuàng)建采用業(yè)務(wù)標(biāo)識(shí)信息和日志級(jí)別標(biāo)識(shí)為文件名的配置文件,即在指定目錄下存在相應(yīng)業(yè)務(wù)和日志級(jí)別的配置文件,那么就進(jìn)行這條日志數(shù)據(jù)的記錄;反之則不記錄。舉個(gè)例子而言假如業(yè)務(wù)標(biāo)識(shí)信息為service,指定的日志目錄是/log/service/,如果在這個(gè)目錄下存在service_INF0_log. xxxx文件,那么具有INFO日志級(jí)別的日志數(shù)據(jù)就會(huì)被寫入service_INF0_log. xxxx文件中;如果在這個(gè)目錄下存在service_ERR0R_log. xxxx文件,那么具有error日志級(jí)別的日志數(shù)據(jù)就會(huì)被寫入service_ERR0R_log. xxxx文件中。也就是說,是否存在與某個(gè)日志級(jí)別同名的配置文件,或者,是否存在與某個(gè)業(yè)務(wù)標(biāo)識(shí)信息和日志級(jí)別同名的配置文件,就是是否記錄該級(jí)別的日志數(shù)據(jù)的開關(guān),系統(tǒng)會(huì)在每次記錄日志的時(shí)候?qū)ζ溥M(jìn)行判斷,從而實(shí)現(xiàn)動(dòng)態(tài)的日志配置功能。當(dāng)然,上述配置文件的設(shè)置方式僅僅用作示例,在實(shí)際中,還可以采用其它方式設(shè)置所述配置文件,例如,在指定目錄下創(chuàng)建包括業(yè)務(wù)標(biāo)識(shí)信息,日志級(jí)別標(biāo)識(shí)和記錄日期的文件名的配置文件,在這種情況下,則將滿足所述業(yè)務(wù)標(biāo)識(shí)信息,日志級(jí)別標(biāo)識(shí)和記錄日期的日志數(shù)據(jù)記錄在相應(yīng)的配置文件中;本領(lǐng)域技術(shù)人員依據(jù)實(shí)際情況采用設(shè)置均是可行的,本發(fā)明對(duì)此無需加以限制。在只針對(duì)所有日志級(jí)別中的某一個(gè)或某幾個(gè)日志級(jí)別設(shè)置配置文件的情況下,本發(fā)明實(shí)施例可以有效減少日志文件所占用的存儲(chǔ)空間。并通過這樣一種靈活配置的方式,使得日志的管理更加靈活,從而保證在日志文件中所儲(chǔ)存的信息大部分是有價(jià)值的信息,對(duì)于用戶查詢?nèi)罩镜牟僮鞫?,也有利于用戶操作效率的提高。在具體實(shí)現(xiàn)中,可以設(shè)置一個(gè)獨(dú)立的進(jìn)程(預(yù)設(shè)進(jìn)程)去掃描所述配置文件。所述預(yù)設(shè)進(jìn)程可以為一個(gè)精靈進(jìn)程,精靈進(jìn)程是生存期長(zhǎng)的一種進(jìn)程。它們常常在系統(tǒng)引導(dǎo)裝入時(shí)起動(dòng),在系統(tǒng)關(guān)閉時(shí)終止。是一種在后臺(tái)運(yùn)行的沒有控制終端的進(jìn)程。精靈進(jìn)程可以定時(shí)掃描配置文件,然后根據(jù)重要級(jí)別去進(jìn)行報(bào)警以提示用戶發(fā)生異常日志的情形。例如,當(dāng)掃描出錯(cuò)誤日志時(shí),發(fā)出郵件進(jìn)行報(bào)警;當(dāng)掃描出警告日志或者指明日志時(shí),發(fā)出郵件和短信進(jìn)行報(bào)警。因?yàn)榫`進(jìn)程在定時(shí)掃描日志的配置文件,所以它會(huì)發(fā)現(xiàn)失敗交易,發(fā)出告警,告警信息中可以包括發(fā)生錯(cuò)誤的機(jī)器IP、日志名稱和發(fā)生錯(cuò)誤的交易單號(hào)。運(yùn)維人員得到告警信息后,可以迅速找到該錯(cuò)誤日志,因?yàn)殄e(cuò)誤日志往往較少,可以很快從錯(cuò)誤日志中找到記錄該筆交易失敗的地方,然后根據(jù)日志信息可以定位是哪個(gè)步驟發(fā)生問題。當(dāng)然,以上僅對(duì)所述異常日志的處理方式進(jìn)行示例說明,本領(lǐng)域技術(shù)人員依據(jù)實(shí)際情況任意設(shè)置均可,本發(fā)明對(duì)此不作限制。步驟103,在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù)。本專利的發(fā)明人還注意到,日志的記錄方式會(huì)在很大程度上影響用戶對(duì)所關(guān)注信息的獲取。一種格式明晰的日志記錄方式能讓用戶快速定位其所關(guān)注的信息,而雜亂無章的記錄格式則會(huì)讓用戶花費(fèi)很多時(shí)間,從而降低用戶的工作效率。為建立一種格式明晰的 日志記錄方式,本發(fā)明實(shí)施例的日志記錄方式要求在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù),以在交易平臺(tái)的應(yīng)用為例,按交易流水號(hào)組織對(duì)應(yīng)的日志數(shù)據(jù)則可以將雜亂無章的同筆交易的多筆日志數(shù)據(jù)整理在一起。具體而言,可以將交易流水號(hào)列為縱軸上的字段,將其它數(shù)據(jù)如日志級(jí)別,記錄時(shí)間等列為橫軸上的字段,在用戶進(jìn)行查詢的時(shí)候,則可以通過橫軸和縱軸等多個(gè)關(guān)鍵字段來進(jìn)行查詢,因?yàn)闄M軸上具有多列,可以使用列分析工具awk等進(jìn)行過濾分析,也可以導(dǎo)入數(shù)據(jù)庫后再進(jìn)行分析,因?yàn)槿罩緮?shù)據(jù)已有對(duì)應(yīng)的字段,如日志級(jí)別,記錄時(shí)間等,所以導(dǎo)入數(shù)據(jù)庫的工作也非常簡(jiǎn)單。應(yīng)用本發(fā)明實(shí)施例,使得用戶可以在查詢某筆上下文關(guān)聯(lián)的特征信息時(shí),可以更快更準(zhǔn)地定位查詢,從而進(jìn)一步提高了用戶查詢?nèi)罩镜男?。參照?qǐng)D2,其示出了本發(fā)明的一種日志記錄的方法實(shí)施例2的步驟流程圖,具體可以包括如下步驟步驟201,獲取日志數(shù)據(jù),所述日志數(shù)據(jù)為逐行記錄的日志數(shù)據(jù),每行日志數(shù)據(jù)具體包括如下信息進(jìn)程信息和/或線程信息,業(yè)務(wù)標(biāo)識(shí)信息,特征信息標(biāo)識(shí)(如交易流水號(hào)),記錄時(shí)間,日志級(jí)別,和/或,業(yè)務(wù)操作信息。例如,一條日志數(shù)據(jù)記錄的內(nèi)容為[10910] [1166063936] [I林林林林林林 145] 20120810 00:00:07. 995INF00林林*氺氺氺success !其中,[10910]為進(jìn)程號(hào)(進(jìn)程信息),[1166063936]為線程號(hào)(線程信息),所述進(jìn)程號(hào)和線程號(hào)分別記錄了系統(tǒng)運(yùn)行時(shí)的一些信息,具體可以通過系統(tǒng)提供的API接口獲得。[I ************ 145]是特征信息標(biāo)識(shí),如交易平臺(tái)中的交易流水號(hào),2012081000:00:07. 995為記錄時(shí)間,具體可以采用時(shí)間戳來記錄,時(shí)間戳的精度可以達(dá)到毫秒級(jí),在高并發(fā)的情況下,時(shí)間戳可以用來更清楚地區(qū)分每一條日志數(shù)據(jù)。INFO表示日志級(jí)別,********success !記錄的是執(zhí)行業(yè)務(wù)的實(shí)際操作信息,包括系統(tǒng)的具體一個(gè)進(jìn)程(線程)在這個(gè)時(shí)間點(diǎn)到底做了什么事情,做的這個(gè)事情是否成功等內(nèi)容。步驟202,當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理;步驟203,在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù);
步驟204,將所述按特征信息標(biāo)識(shí)組織的日志數(shù)據(jù),按照所述記錄時(shí)間進(jìn)行排序。為使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下通過一個(gè)具體示例進(jìn)行說明。例如,2012年8月30日用戶在交易平臺(tái)提交了一個(gè)充值申請(qǐng),第一步,所述交易平臺(tái)的前端系統(tǒng)先判斷該用戶提交的請(qǐng)求屬于哪個(gè)業(yè)務(wù)(在實(shí)際中,業(yè)務(wù)可以包括多種,如收款、付款、交易等業(yè)務(wù)),假設(shè)這里調(diào)用的是registerReceivable (登記收款單),系統(tǒng)是根據(jù)業(yè)務(wù)來分目錄分文件記錄日志數(shù)據(jù),當(dāng)前是收款業(yè)務(wù),則選擇收款業(yè)務(wù)的日志目錄RecvService ;第二步,獲取當(dāng)前的系統(tǒng)時(shí)間,系統(tǒng)可以為一天記錄一個(gè)日志文件,則系統(tǒng)定位當(dāng)前的日志目錄20120829并寫入;第三步,系統(tǒng)判斷日志級(jí)別,充值申請(qǐng)是個(gè)正常的日志,級(jí)別是INF0,則選擇RecvService_INFO_log. 20120829文件,沒有則不寫入該配置文件;第四步,系統(tǒng)獲取交易流水號(hào)0AA00005EC38B2012082900221487185,獲取進(jìn)程ID號(hào),和線程ID號(hào);第五步,將當(dāng)前業(yè)務(wù)操作信息,如接收到請(qǐng)求,將請(qǐng)求的原始報(bào)文記錄下來,到 此,所有信息收集完畢,在RecVSerVice_INFO_log. 20120829文件中生成如下所示的日志記錄 [21646] [1148803392]
2012082910:17:37.080 INFO @ input para:inRecv. userid = 247156217333,inRecv.subAccountType = 0,inRecv.recvType = 96,inRecv. state = 2,inRecv. bankUserld =46912518488200,XXX。需要說明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。參照?qǐng)D3,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種日志記錄的裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括以下模塊日志數(shù)據(jù)獲取模塊301,用于獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí);日志文件檢測(cè)模塊302,用于判斷是否存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件,若是,則調(diào)用日志寫入模塊303 ;日志寫入模塊303,用于將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理;日志數(shù)據(jù)組織模塊304,用于在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù)。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志數(shù)據(jù)中還可以包括記錄時(shí)間;所述的裝置還可以包括如下模塊排序模塊,用于將所述按特征信息標(biāo)識(shí)組織的日志數(shù)據(jù),按照所述記錄時(shí)間進(jìn)行排序。作為本發(fā)明實(shí)施例具體應(yīng)用的一種示例,所述裝置用于交易平臺(tái)的日志記錄,所述特征信息標(biāo)識(shí)可以為交易平臺(tái)中每筆交易的交易流水號(hào)。在本發(fā)明的一種優(yōu)選實(shí)施例中,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件可以為文件名中包含所述日志級(jí)別標(biāo)識(shí)的配置文件。
在本發(fā)明的另一種優(yōu)選實(shí)施例中,所述日志數(shù)據(jù)中還包括業(yè)務(wù)標(biāo)識(shí)信息,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件可以為文件名包含所述業(yè)務(wù)標(biāo)識(shí)信息日志級(jí)別標(biāo)識(shí)的配置文件。在具體實(shí)現(xiàn)中,所述日志數(shù)據(jù)中還可以包括進(jìn)程信息和/或線程信息,和/或,業(yè)務(wù)操作信息。對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的 方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式
的權(quán)利要求書由此明確地并入該具體實(shí)施方式
,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。 本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的文件保護(hù)處理設(shè)備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序。可將這些單詞解釋為名稱。 ·
權(quán)利要求
1.一種日志記錄的方法,包括 獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí); 當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理; 在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù)。
2.如權(quán)利要求I所述的方法,所述日志數(shù)據(jù)中還包括記錄時(shí)間;所述的方法還包括 將所述按特征信息標(biāo)識(shí)組織的日志數(shù)據(jù),按照所述記錄時(shí)間進(jìn)行排序。
3.如權(quán)利要求2所述的方法,所述方法用于交易平臺(tái)的日志記錄,所述特征信息標(biāo)識(shí)為交易平臺(tái)中每筆交易的交易流水號(hào)。
4.如權(quán)利要求I或2或3所述的方法,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名中包含所述日志級(jí)別標(biāo)識(shí)的配置文件; 所述當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中的步驟包括 檢查指定目錄下是否存在具有包含相應(yīng)日志級(jí)別標(biāo)識(shí)的文件名的配置文件; 若是,則將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中。
5.如權(quán)利要求I或2或3所述的方法,所述日志數(shù)據(jù)中還包括業(yè)務(wù)標(biāo)識(shí)信息,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名包含所述業(yè)務(wù)標(biāo)識(shí)信息日志級(jí)別標(biāo)識(shí)的配置文件; 所述當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中的步驟包括 檢查指定目錄下是否存在具有包含相應(yīng)業(yè)務(wù)標(biāo)識(shí)信息和日志級(jí)別標(biāo)識(shí)的文件名的配置文件; 若是,則將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入對(duì)應(yīng)的配置文件中。
6.如權(quán)利要求I或2或3所述的方法,所述日志數(shù)據(jù)中還包括進(jìn)程信息和/或線程信息,和/或,業(yè)務(wù)操作信息。
7.一種日志記錄的裝置,包括 日志數(shù)據(jù)獲取模塊,用于獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí); 日志文件檢測(cè)模塊,用于判斷是否存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件,若是,則調(diào)用日志寫入模塊; 日志寫入模塊,用于將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理; 日志數(shù)據(jù)組織模塊,用于在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù)。
8.如權(quán)利要求7所述的裝置,所述日志數(shù)據(jù)中還包括記錄時(shí)間;所述的裝置還包括 排序模塊,用于將所述按特征信息標(biāo)識(shí)組織的日志數(shù)據(jù),按照所述記錄時(shí)間進(jìn)行排序。
9.如權(quán)利要求8所述的裝置,所述裝置用于交易平臺(tái)的日志記錄,所述特征信息標(biāo)識(shí)為交易平臺(tái)中每筆交易的交易流水號(hào)。
10.如權(quán)利要求7或8或9所述的裝置,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名中包含所述日志級(jí)別標(biāo)識(shí)的配置文件。
11.如權(quán)利要求7或8或9所述的裝置,所述日志數(shù)據(jù)中還包括業(yè)務(wù)標(biāo)識(shí)信息,所述日志級(jí)別具有標(biāo)識(shí),所述預(yù)置配置文件為文件名包含所述業(yè)務(wù)標(biāo)識(shí)信息日志級(jí)別標(biāo)識(shí)的配置文件。
12.如權(quán)利要求7或8或9所述的裝置,所述日志數(shù)據(jù)中還包括進(jìn)程信息和/或線程信息,和/或,業(yè)務(wù)操作信息。
全文摘要
本發(fā)明公開了一種日志記錄的方法及裝置,所述方法包括獲取日志數(shù)據(jù),所述日志數(shù)據(jù)中包括日志級(jí)別和特征信息標(biāo)識(shí);當(dāng)存在某個(gè)日志級(jí)別對(duì)應(yīng)的預(yù)置配置文件時(shí),將相應(yīng)日志級(jí)別的日志數(shù)據(jù)寫入該配置文件中;所述配置文件用于由預(yù)設(shè)進(jìn)程進(jìn)行掃描,以進(jìn)行異常日志提醒處理;在所述配置文件中按特征信息標(biāo)識(shí)組織對(duì)應(yīng)的日志數(shù)據(jù),本發(fā)明可以在減少日志數(shù)據(jù)存儲(chǔ)資源占用的基礎(chǔ)上,提高定位日志及報(bào)告異常日志的效率。
文檔編號(hào)G06F17/30GK102902764SQ20121036188
公開日2013年1月30日 申請(qǐng)日期2012年9月25日 優(yōu)先權(quán)日2012年9月25日
發(fā)明者柴昱 申請(qǐng)人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司