一種存儲(chǔ)日志的方法及裝置制造方法
【專利摘要】本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種存儲(chǔ)日志的方法及裝置。該方法包括:對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí);根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑;按照配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。該方法實(shí)現(xiàn)了虛擬服務(wù)器的日志存儲(chǔ)路徑的動(dòng)態(tài)配置,提高了日志存儲(chǔ)效率。
【專利說明】—種存儲(chǔ)日志的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種存儲(chǔ)日志的方法及裝置。
【背景技術(shù)】
[0002]伴隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算機(jī)系統(tǒng)日志在監(jiān)控服務(wù)器系統(tǒng)資源方面的應(yīng)用備受關(guān)注。計(jì)算機(jī)系統(tǒng)的日志存儲(chǔ)方式成為影響計(jì)算機(jī)系統(tǒng)工作效率的重要問題。
[0003]現(xiàn)有的存儲(chǔ)日志的方法包括:啟動(dòng)待存儲(chǔ)日志的虛擬服務(wù)器;在所述虛擬服務(wù)器所屬設(shè)備的中的路徑配置文件中配置日志存儲(chǔ)路徑;按照配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
[0004]采用現(xiàn)有的存儲(chǔ)日志的方法中路徑配置文件是靜態(tài)配置的,需要在待存儲(chǔ)日志的虛擬服務(wù)器的路徑配置文件中手動(dòng)修改日志存儲(chǔ)路徑,因此現(xiàn)有的存儲(chǔ)日志的方法,操作復(fù)雜且效率較低。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種存儲(chǔ)日志的方法及裝置,以降低存儲(chǔ)日志的復(fù)雜度,并且提高日志存儲(chǔ)效率。
[0006]—方面,本發(fā)明提出一種存儲(chǔ)日志的方法,包括:
[0007]對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí);
[0008]根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑;
[0009]按照配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
[0010]另一方面,本發(fā)明還提出一種存儲(chǔ)日志的裝置,包括:
[0011]標(biāo)識(shí)獲取單元,用于對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí);
[0012]路徑配置單元,用于根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑;
[0013]日志存儲(chǔ)單元,用于按照所述路徑配置單元配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
[0014]本發(fā)明提出的存儲(chǔ)日志的方法及裝置,通過內(nèi)存中的待存儲(chǔ)日志的虛擬服務(wù)器的標(biāo)識(shí)信息為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑,實(shí)現(xiàn)了虛擬服務(wù)器的日志存儲(chǔ)路徑的動(dòng)態(tài)配置,提高了日志存儲(chǔ)效率。
【專利附圖】
【附圖說明】
[0015]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中:[0016]圖1是本發(fā)明第一實(shí)施例中提供的一種存儲(chǔ)日志的方法的實(shí)現(xiàn)流程圖;
[0017]圖2是本發(fā)明第二實(shí)施例中提供的一種存儲(chǔ)日志的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018]下面結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明進(jìn)行更加詳細(xì)與完整的說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。
[0019]圖1是本發(fā)明第一實(shí)施例中提供的一種存儲(chǔ)日志的方法的實(shí)現(xiàn)流程圖。本發(fā)明實(shí)施例提供的方法可以由本發(fā)明實(shí)施例提供的存儲(chǔ)日志的裝置來執(zhí)行,該裝置可以由軟件和/或硬件來實(shí)現(xiàn)。如圖1所示,本發(fā)明實(shí)施例提供的方法包括:
[0020]步驟101、對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí)。
[0021]虛擬服務(wù)器也稱為vps主機(jī),相對(duì)于真實(shí)主機(jī)而言,采用特殊的軟硬件技術(shù)把一臺(tái)完整的服務(wù)器主機(jī)分成若干個(gè)主機(jī)。tomcat為常用的虛擬服務(wù)器,由于其具有技術(shù)先進(jìn)性、性能穩(wěn)定以及免費(fèi)等特點(diǎn),深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的網(wǎng)絡(luò)應(yīng)用服務(wù)器。
[0022]步驟102、根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑。
[0023]其中,路徑配置文件的格式能夠?yàn)榭赏卣箻?biāo)記語言(Extentsible MarkupLanguage,XML),用于標(biāo)記路徑配置文件中日志存儲(chǔ)格式及日志存儲(chǔ)路徑等。由于路徑配置文件中的日志存儲(chǔ)路徑參數(shù)由標(biāo)識(shí)參數(shù)和預(yù)設(shè)的路徑組成,將步驟101中獲取的標(biāo)識(shí)賦值給日志存儲(chǔ)路徑參數(shù)中的標(biāo)識(shí)參數(shù),即可以完成對(duì)日志存儲(chǔ)路徑的賦值。
[0024]步驟103、按照配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
[0025]將虛擬服務(wù)器的日志存儲(chǔ)到配置好的日志存儲(chǔ)路徑,即將日志存儲(chǔ)到日志存儲(chǔ)路徑所對(duì)應(yīng)的目錄的文件夾中,其中日志是指系統(tǒng)所指定對(duì)象的某些操作和其操作結(jié)果按時(shí)間有序的集合。每個(gè)日志文件由日志記錄組成,每條日志記錄描述了一次單獨(dú)的系統(tǒng)事件。通常情況下,系統(tǒng)日志是用戶可以直接閱讀的文本文件,其中包含了一個(gè)時(shí)間戳和一個(gè)信息或者子系統(tǒng)所特有的其他信息。日志文件為服務(wù)器、工作站、防火墻和應(yīng)用軟件等IT資源相關(guān)活動(dòng)記錄必要的、有價(jià)值的信息,這對(duì)系統(tǒng)監(jiān)控、查詢、報(bào)表和安全審計(jì)是十分重要的。
[0026]本發(fā)明實(shí)施例在從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí)之前,還包括:在所述虛擬服務(wù)器啟動(dòng)時(shí),將所述虛擬服務(wù)器的標(biāo)識(shí)添加到從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中。
[0027]由于日志存儲(chǔ)路徑中含有標(biāo)識(shí)參數(shù),需要從虛擬服務(wù)器所述設(shè)備的內(nèi)存中讀取標(biāo)識(shí)信息以組裝日志輸出路徑,因此在啟動(dòng)虛擬服務(wù)器時(shí),將其標(biāo)識(shí)添加到內(nèi)存中。
[0028]將所述虛擬服務(wù)器的標(biāo)識(shí)添加到從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中,包括:通過所述虛擬服務(wù)器的啟動(dòng)腳本,將所述標(biāo)識(shí)添加到所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中,所述虛擬服務(wù)器的啟動(dòng)腳本中包含所述標(biāo)識(shí)的信息。
[0029]將虛擬服務(wù)器的標(biāo)識(shí)添加到內(nèi)存中是通過在虛擬服務(wù)器的啟動(dòng)腳本中添加標(biāo)識(shí)的信息實(shí)現(xiàn)的。由于虛擬服務(wù)器的啟動(dòng)腳本中包括標(biāo)識(shí)的信息,其啟動(dòng)時(shí)能夠?qū)?biāo)識(shí)的信息存儲(chǔ)到虛擬服務(wù)器所述設(shè)備的內(nèi)存中。
[0030]根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑,包括:在所述日志存儲(chǔ)路徑參數(shù)給出的日志存儲(chǔ)路徑的末端目錄下,創(chuàng)建以所述標(biāo)識(shí)命名的文件夾。
[0031 ]日志存儲(chǔ)于日志存儲(chǔ)路徑下實(shí)質(zhì)上是將日志存儲(chǔ)于日志存儲(chǔ)路徑的目錄所對(duì)應(yīng)的文件夾下。因此,將標(biāo)識(shí)添加賦值給日志存儲(chǔ)路徑參數(shù)中的標(biāo)識(shí)參數(shù)后,在日志存儲(chǔ)路徑參數(shù)給出的日志存儲(chǔ)路徑的末端目錄下,創(chuàng)建以所述標(biāo)識(shí)命名的文件夾。其中,日志存儲(chǔ)路徑參數(shù)中給出的日志存儲(chǔ)路徑的末端目錄可選的位于虛擬服務(wù)器的安裝包中。
[0032]可選的,所述標(biāo)識(shí)用于在所述設(shè)備中唯一表示所述虛擬服務(wù)器。本實(shí)施例中虛擬服務(wù)器的標(biāo)識(shí)可以是唯一的,同一臺(tái)服務(wù)器中的各個(gè)相同虛擬服務(wù)器的日志分別存儲(chǔ)于不同文件夾下,此時(shí)能夠區(qū)分位于同一臺(tái)服務(wù)器的各個(gè)相同虛擬服務(wù)器的日志;另外,虛擬服務(wù)器的標(biāo)識(shí)可以是不唯一的,相同標(biāo)識(shí)的虛擬服務(wù)器的日志存儲(chǔ)于同一個(gè)文件夾中。
[0033]本發(fā)明實(shí)施例所提供的存儲(chǔ)日志的方法,通過將內(nèi)存中的虛擬服務(wù)器的標(biāo)識(shí),添加到路徑配置文件中的日志存儲(chǔ)路徑參數(shù)所包括的標(biāo)識(shí)參數(shù)中,從而通過內(nèi)存中的待存儲(chǔ)日志的虛擬服務(wù)器的標(biāo)識(shí)信息為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑,實(shí)現(xiàn)了虛擬服務(wù)器的日志存儲(chǔ)路徑的動(dòng)態(tài)配置,提高了日志存儲(chǔ)效率。
[0034]圖2是本發(fā)明第二實(shí)施例中提供的一種日志存儲(chǔ)裝置的結(jié)構(gòu)效果圖。本發(fā)明實(shí)施例和本發(fā)明中方法實(shí)施例屬于統(tǒng)一構(gòu)思,用于實(shí)現(xiàn)圖1所示實(shí)施例中的方法,在本發(fā)明實(shí)施例的路徑配置單元中未詳述的內(nèi)容,請參考本發(fā)明方法實(shí)施例。如圖2所示,本發(fā)明實(shí)施例提供的裝置,包括:
[0035]標(biāo)識(shí)獲取單元201,用于對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí);路徑配置單元202,用于根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑;日志存儲(chǔ)單元203,用于按照所述路徑配置單元配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
[0036]所述路徑配置單元202具體用于在所述日志存儲(chǔ)路徑參數(shù)給出的日志存儲(chǔ)路徑的末端目錄下,創(chuàng)建以所述標(biāo)識(shí)命名的文件夾。
[0037]裝置還包括:標(biāo)識(shí)添加單元,用于在所述虛擬服務(wù)器啟動(dòng)時(shí),將所述虛擬服務(wù)器的標(biāo)識(shí)添加到從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中。
[0038]所述標(biāo)識(shí)添加單元具體用于通過所述虛擬服務(wù)器的啟動(dòng)腳本,將所述標(biāo)識(shí)添加到所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中,所述虛擬服務(wù)器的啟動(dòng)腳本中包含所述標(biāo)識(shí)的信息。
[0039]所述標(biāo)識(shí)獲取單元獲取的所述標(biāo)識(shí)用于在所述設(shè)備中唯一表示所述虛擬服務(wù)器。
[0040]本發(fā)明實(shí)施例所提供的存儲(chǔ)日志的裝置,通過標(biāo)識(shí)獲取單元201在虛擬服務(wù)器的啟動(dòng)腳本中配置虛擬服務(wù)器(例如Tomcat)的標(biāo)識(shí)信息,并把標(biāo)識(shí)信息存入內(nèi)存中。隨后,路徑配置單元202將標(biāo)識(shí)參數(shù)添加到日志存儲(chǔ)路徑參數(shù)中,并且將標(biāo)識(shí)信息賦給日志存儲(chǔ)路徑參數(shù)中的標(biāo)識(shí)參數(shù),以完成日志存儲(chǔ)路徑的動(dòng)態(tài)配置;日志存儲(chǔ)單元203在配置的日志存儲(chǔ)路徑下存儲(chǔ)虛擬服務(wù)器相應(yīng)的日志。
[0041]另外,由于本發(fā)明實(shí)施例所提供的日志存儲(chǔ)的裝置通過虛擬服務(wù)器的啟動(dòng)腳本為每一個(gè)虛擬服務(wù)器注入了唯一標(biāo)識(shí),從而實(shí)現(xiàn)一臺(tái)服務(wù)器中多個(gè)虛擬服務(wù)器輸出日志的目的地都是不同的文件,能精確定位到一條日志信息是來自哪個(gè)虛擬服務(wù)器,從而在應(yīng)用報(bào)錯(cuò)的情況下能很快的正確定位是哪個(gè)虛擬服務(wù)器相對(duì)應(yīng)的應(yīng)用出錯(cuò)。
[0042]本實(shí)施例提供的日志存儲(chǔ)的裝置用于執(zhí)行本發(fā)明任意實(shí)施例提供的日志存儲(chǔ)的方法,具備相應(yīng)的功能模塊,達(dá)到相同的技術(shù)效果。
[0043]本發(fā)明第三實(shí)施例為使用log4j存儲(chǔ)tomcat的日志的完整技術(shù)方案。其中,log4j為日志存儲(chǔ)中常用的技術(shù),是一個(gè)開放源代碼項(xiàng)目。通過使用log4j,可以控制日志信息輸送的目的地是控制臺(tái)、文件、圖形用戶界面組件、甚至是套接口服務(wù)器、新技術(shù)的事件記錄器或UNIX系統(tǒng)日志守護(hù)進(jìn)程等;也可以控制每一條日志的輸出格式;通過定義每一條日志信息的級(jí)別,能夠更加細(xì)致地控制日志的生成過程。log4j技術(shù)控制日志存儲(chǔ)時(shí),可以通過一個(gè)配置來靈活地進(jìn)行配置,而不需要修改應(yīng)用的代碼。
[0044]在tomcat的啟動(dòng)腳本里注入該tomcat信息的唯一標(biāo)識(shí),用以區(qū)分一臺(tái)服務(wù)器上的其他tomcat,通常tomcat的啟動(dòng)腳本為Shell腳本。上述標(biāo)識(shí)是用戶自己定義的,需要保證位于同一臺(tái)服務(wù)器上的各個(gè)tomcat的標(biāo)識(shí)不一樣,如有5個(gè)tomcat應(yīng)用,他們的標(biāo)識(shí)分別為 serverl、server2、server3、server4 和 server5,在第一個(gè)的 tomcat 的啟動(dòng)腳本里增加以下代碼:
[0045]export JAVA_0PTS=,,-Dserver.log.1d=serverl,,
[0046]當(dāng)用tomcat啟動(dòng)腳本執(zhí)行該tomcat的啟動(dòng)命令時(shí)”-Dserver.log.1d=serverl”將會(huì)被動(dòng)態(tài)的注入到該tomcat所述設(shè)備的內(nèi)存里,例如該tomcat的java系統(tǒng)常量。
[0047]編寫Servlet的監(jiān)聽器Log4jInitListener,該監(jiān)聽器主要作用是通過key等于server, log.1d獲取前面通過tomcat啟動(dòng)腳本輸入java系統(tǒng)常量的值serverl,并把重新
組裝的日志輸出路徑輸入到j(luò)ava系統(tǒng)常量中,具體代碼片段如下:
[0048]
【權(quán)利要求】
1.一種存儲(chǔ)日志的方法,其特征在于,包括: 對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí); 根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑; 按照配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑,包括: 在所述日志存儲(chǔ)路徑參數(shù)給出的日志存儲(chǔ)路徑的末端目錄下,創(chuàng)建以所述標(biāo)識(shí)命名的文件夾。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí)之前,還包括: 在所述虛擬服務(wù)器啟動(dòng)時(shí),將所述虛擬服務(wù)器的標(biāo)識(shí)添加到從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,將所述虛擬服務(wù)器的標(biāo)識(shí)添加到從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中,包括: 通過所述虛擬服務(wù)器的啟動(dòng)腳本,將所述標(biāo)識(shí)添加到所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中,所述虛擬服務(wù)器的啟動(dòng)腳本中包含所述標(biāo)識(shí)的信息。
5.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述標(biāo)識(shí)用于在所述設(shè)備中唯一表示所述虛擬服務(wù)器。
6.一種存儲(chǔ)日志的裝置,其特征在于,包括: 標(biāo)識(shí)獲取單元,用于對(duì)于待存儲(chǔ)日志的虛擬服務(wù)器,從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中獲取所述虛擬服務(wù)器的標(biāo)識(shí); 路徑配置單元,用于根據(jù)所述標(biāo)識(shí)以及所述虛擬服務(wù)器所屬設(shè)備中的路徑配置文件中的日志存儲(chǔ)路徑參數(shù),為所述虛擬服務(wù)器配置日志存儲(chǔ)路徑; 日志存儲(chǔ)單元,用于按照所述路徑配置單元配置的日志存儲(chǔ)路徑存儲(chǔ)所述虛擬服務(wù)器的日志。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述配置日志存儲(chǔ)路徑單元具體用于在所述日志存儲(chǔ)路徑參數(shù)給出的日志存儲(chǔ)路徑的末端目錄下,創(chuàng)建以所述標(biāo)識(shí)命名的文件夾。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述裝置還包括: 標(biāo)識(shí)添加單元,用于在所述虛擬服務(wù)器啟動(dòng)時(shí),將所述虛擬服務(wù)器的標(biāo)識(shí)添加到從所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述添加獲取單元具體用于通過所述虛擬服務(wù)器的啟動(dòng)腳本,將所述標(biāo)識(shí)添加到所述虛擬服務(wù)器所屬設(shè)備的內(nèi)存中,所述虛擬服務(wù)器的啟動(dòng)腳本中包含所述標(biāo)識(shí)的信息。
10.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,所述標(biāo)識(shí)獲取單元獲取的所述標(biāo)識(shí)用于在所述設(shè)備中唯一表示所述虛擬服務(wù)器。
【文檔編號(hào)】G06F17/30GK103617283SQ201310674858
【公開日】2014年3月5日 申請日期:2013年12月11日 優(yōu)先權(quán)日:2013年12月11日
【發(fā)明者】梅軍 申請人:北京京東尚科信息技術(shù)有限公司, 北京京東世紀(jì)貿(mào)易有限公司