專利名稱:一種獲取進(jìn)程輸出日志的方法、裝置及企業(yè)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計(jì)算機(jī)軟件領(lǐng)域,尤其涉及一種獲取進(jìn)程輸出日志的方法、裝置及企業(yè)系統(tǒng)。
背景技術(shù):
進(jìn)程是一個(gè)具有獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。它可以申請和擁有系統(tǒng)資源,是一個(gè)動(dòng)態(tài)的概念,是一個(gè)活動(dòng)的實(shí)體。它不只是程序的代碼,還包括當(dāng)前的活動(dòng),通過程序計(jì)數(shù)器的值和處理寄存器的內(nèi)容來表示。大型的商業(yè)應(yīng)用中,一般由多個(gè)不同的進(jìn)程來提供服務(wù),需要查詢這些進(jìn)程的輸出日志或者直接讀取進(jìn)程輸出的日志來監(jiān)控大型商業(yè)應(yīng)用的服務(wù),但對進(jìn)程輸出日志的讀取或進(jìn)程輸出日志的查詢將導(dǎo)致輸出日志慢,消耗資源多,不能保證實(shí)時(shí)性等缺點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種方便、快捷的獲取進(jìn)程輸出日志的方法,旨在解決不能實(shí)時(shí)地獲取進(jìn)程輸出日志的問題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種獲取進(jìn)程輸出日志的方法,所述方法包括下列步驟當(dāng)在第一進(jìn)程中創(chuàng)建第二進(jìn)程時(shí),獲取第二進(jìn)程的日志輸入流;通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流;當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。本發(fā)明實(shí)施例的另一目的在于提供一種獲取進(jìn)程輸出日志的裝置,所述裝置包括輸入流獲取模塊,用于通過在第一進(jìn)程中創(chuàng)建第二進(jìn)程,并獲取所述第二進(jìn)程的日志輸入流。定期檢查模塊,通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流。新日志輸出模塊,用于當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。本發(fā)明實(shí)施例的另一目的在于提供一種企業(yè)系統(tǒng),包括所述的獲取進(jìn)程輸出日志的裝置。在本發(fā)明實(shí)施例中,通過在第一進(jìn)程中啟動(dòng)第二進(jìn)程后獲取所述第二進(jìn)程的輸入流,并通過第一進(jìn)程創(chuàng)建的監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流的方法獲取第二進(jìn)程的輸出日志。定期檢查第二進(jìn)程的日志輸入流的方法保證了能夠?qū)崟r(shí)獲得日志信息,且日志流的使用能夠方便且低耗地獲取進(jìn)程輸出日志。
圖1是本發(fā)明第一實(shí)施例提供的獲取進(jìn)程輸出日志的方法的流程圖;圖2是本發(fā)明第二實(shí)施例提供的獲取進(jìn)程輸出日志的方法的流程圖;圖3是本發(fā)明實(shí)施例提供的獲取進(jìn)程輸出日志的裝置示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例通過在第一進(jìn)程中啟動(dòng)第二進(jìn)程后獲取所述第二進(jìn)程的輸入流,并通過所述第一進(jìn)程創(chuàng)建的監(jiān)控線程定期檢查所述第二進(jìn)程的日志輸入流的方法獲取所述第二進(jìn)程的輸出日志。本發(fā)明提供了一種獲取進(jìn)程輸出日志的方法和裝置所述方法包括當(dāng)在第一進(jìn)程中創(chuàng)建第二進(jìn)程時(shí),獲取第二進(jìn)程的日志輸入流;通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流;當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。所述裝置包括輸入流獲取模塊,用于通過在第一進(jìn)程中創(chuàng)建第二進(jìn)程,并獲取所述第二進(jìn)程的日志輸入流。定期檢查模塊,通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流。新日志輸出模塊,用于當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。實(shí)施例一圖1示出了本發(fā)明第一實(shí)施例提供的獲取進(jìn)程輸出日志的方法的具體流程。在步驟SlOl中,當(dāng)在第一進(jìn)程中創(chuàng)建第二進(jìn)程時(shí),獲取第二進(jìn)程的日志輸入流。在本發(fā)明實(shí)施例中,第二進(jìn)程為第一進(jìn)程創(chuàng)建的子進(jìn)程。所獲取的第二進(jìn)程的日志輸入流包括一般日志輸入流和錯(cuò)誤日志輸入流。在步驟S102中,通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流。在本發(fā)明實(shí)施例中,第一進(jìn)程分別創(chuàng)建兩個(gè)監(jiān)控線程分別為第一監(jiān)控線程和第二監(jiān)控線程。其中第一監(jiān)控線程用于定期檢查第二進(jìn)程的一般日志輸入流是否產(chǎn)生了新日志流,第二監(jiān)控線程用于定期檢查第二進(jìn)程的錯(cuò)誤日志輸入流是否產(chǎn)生了新日志流。定期可以按照實(shí)際需求設(shè)定,如每隔10毫秒檢查一次等,當(dāng)然定期還可以設(shè)置為其它時(shí)間間隔,在此不以該舉例說明為限。定期檢查所述第二進(jìn)程輸出日志流的方法能夠?qū)崟r(shí)地獲取第二進(jìn)程的輸出日志流。在步驟S103中,當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。在本發(fā)明實(shí)施例中,當(dāng)?shù)谝槐O(jiān)控線程監(jiān)測到所述一般日志輸入流有新日志流產(chǎn)生,則將一般日志輸入流的新日志流輸出到第二進(jìn)程的進(jìn)程日志文件。當(dāng)?shù)诙O(jiān)控線程監(jiān)測到所述錯(cuò)誤日志輸入流有新日志流產(chǎn)生,則將錯(cuò)誤日志輸入流的新日志流輸出到第二進(jìn)程的進(jìn)程日志文件。在本發(fā)明實(shí)施例中,若沒有新日志流產(chǎn)生,監(jiān)控線程則返回繼續(xù)定期檢查第二進(jìn)程的日志輸入流。在本發(fā)明實(shí)施例中,監(jiān)控線程定期檢查進(jìn)程是否有新日志流產(chǎn)生的方法,能夠?qū)崟r(shí)獲取所屬進(jìn)程的日志輸出流,且日志流的使用能夠方便且低耗地獲取進(jìn)程輸出日志。實(shí)施例二 圖2示出了本發(fā)明第二實(shí)施例提供的獲取進(jìn)程輸出日志的方法的具體流程。在步驟S201中,當(dāng)在第一進(jìn)程中創(chuàng)建第二進(jìn)程時(shí),獲取第二進(jìn)程的日志輸入流。在步驟S202中,通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流。在步驟S203中,當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至緩存。在本發(fā)明實(shí)施例中,當(dāng)有新日志流產(chǎn)生時(shí),首先將新日志流輸出到緩存中。在步驟S204中,將緩存中的日志流輸出到第二進(jìn)程的進(jìn)程日志文件。在本發(fā)明實(shí)施例中,新日志流在輸出到日志文件前先輸出到緩存,可加速日志的輸出速度,且不會(huì)出現(xiàn)阻塞的情況。實(shí)施例三圖3示出了本發(fā)明實(shí)施例提供的獲取進(jìn)程輸出日志的裝置的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部份。該裝置可以是內(nèi)置于企業(yè)系統(tǒng)中的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,或者作為獨(dú)立的掛件集成到企業(yè)系統(tǒng)或企業(yè)系統(tǒng)的應(yīng)用系統(tǒng)中。其中輸入流獲取模塊1,用于通過在第一進(jìn)程中創(chuàng)建第二進(jìn)程,并獲取所述第二進(jìn)程的日志輸入流。在本發(fā)明實(shí)施例中,第二進(jìn)程為第一進(jìn)程創(chuàng)建的子進(jìn)程。所獲取的第二進(jìn)程的日志輸入流包括一般日志輸入流和錯(cuò)誤日志輸入流。定期檢查模塊2,通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流。緩存模塊3,用于當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí)將新日志流輸出到緩存,再將緩存中的新日志流輸出到第二進(jìn)程的進(jìn)程日志文件。新日志輸出模塊4,用于當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。在本發(fā)明實(shí)施例中,通過在第一進(jìn)程中啟動(dòng)第二進(jìn)程后獲取所述第二進(jìn)程的輸入流,并通過所述第一進(jìn)程創(chuàng)建的監(jiān)控線程定期檢查所述第二進(jìn)程的日志輸入流的方法獲取所述第二進(jìn)程的輸出日志。定期檢查第二進(jìn)程的日志輸入流的方法保證了能夠?qū)崟r(shí)獲得日志信息,且日志流的使用能夠方便且低耗地獲取進(jìn)程輸出日志。獲得輸出日志信息后又將其存入緩存,使得日志的輸出較快且不會(huì)出現(xiàn)阻塞的情況。本領(lǐng)域普通技術(shù)人員可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如ROM/RAM、磁盤、光盤等。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種獲取進(jìn)程輸出日志的方法,其特征在于,所述方法包括下列步驟 當(dāng)在第一進(jìn)程中創(chuàng)建第二進(jìn)程時(shí),獲取第二進(jìn)程的日志輸入流;通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流;當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。
2.如權(quán)利要求1所述的方法,其特征在于,所述第二進(jìn)程的日志輸入流包括一般日志輸入流和錯(cuò)誤日志輸入流。
3.如權(quán)利要求2所述的方法,其特征在于,所述通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流的步驟具體為通過第一進(jìn)程創(chuàng)建第一監(jiān)控線程和第二監(jiān)控線程; 通過第一監(jiān)控線程監(jiān)控定期檢查一般日志輸入流是否產(chǎn)生了新日志流; 通過第二監(jiān)控線程監(jiān)控定期檢查錯(cuò)誤日志輸入流是否產(chǎn)生了新日志流。
4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件的步驟具體為當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí)將新日志流輸出到緩存;將緩存中的新日志流輸出到第二進(jìn)程的進(jìn)程日志文件。
5.一種獲取進(jìn)程輸出日志的裝置,其特征在于,所述裝置包括輸入流獲取模塊,用于通過在第一進(jìn)程中創(chuàng)建第二進(jìn)程,并獲取所述第二進(jìn)程的日志輸入流。定期檢查模塊,通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流。新日志輸出模塊,用于當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí), 將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。
6.如權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括緩存模塊,用于當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí)將新日志流輸出到緩存,再將緩存中的新日志流輸出到第二進(jìn)程的進(jìn)程日志文件。
7.一種包括權(quán)利要求5至6任一權(quán)利要求所述的獲取進(jìn)程輸出日志的裝置的企業(yè)系統(tǒng)。
全文摘要
本發(fā)明適用于計(jì)算機(jī)軟件領(lǐng)域,提供了一種獲取進(jìn)程輸出日志的方法、裝置及企業(yè)系統(tǒng)。所述方法包括當(dāng)在第一進(jìn)程中創(chuàng)建第二進(jìn)程時(shí),獲取第二進(jìn)程的日志輸入流;通過第一進(jìn)程創(chuàng)建監(jiān)控線程,并通過監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流是否產(chǎn)生了新日志流;當(dāng)監(jiān)控線程監(jiān)測到第二進(jìn)程的日志輸入流產(chǎn)生了新日志流時(shí),將新日志流輸出至第二進(jìn)程的進(jìn)程日志文件。本發(fā)明通過第一進(jìn)程創(chuàng)建監(jiān)控線程定期檢查第二進(jìn)程的日志輸入流的方法獲取所述第二進(jìn)程的輸出日志,定期檢查第二進(jìn)程的日志輸入流的方法保證了能夠?qū)崟r(shí)獲得日志信息,且日志流的使用能夠方便且低消耗地獲取進(jìn)程的輸出日志。
文檔編號(hào)G06F9/46GK102455889SQ20101052499
公開日2012年5月16日 申請日期2010年10月29日 優(yōu)先權(quán)日2010年10月29日
發(fā)明者劉習(xí)紅 申請人:金蝶軟件(中國)有限公司