2017-01-26 41 views
2

我正試圖在Talend中實現日誌記錄。所以我用普通組件做了一個工作,我通過Twarn和Tdie記錄了錯誤,信息和調試。 使用Logcatcher,我將日誌分成兩個調試和錯誤文件。 這部分工作正常。Talend中常見的日誌記錄

現在我已經做了兩個工作,

第一: - 使用trowgenerator生成線,然後發送給TMAP從TMAP,我發送給基於某些條件的兩個TWARN組件。

第二:有tlogcatcher,t_filterrow和分離到兩個文件基於某些條件的工作。

因此,我正在與第一個作業同時運行第二個作業來捕獲日誌,但它不起作用。

我已經嘗試了幾個選項,並堅持在這一點上。

主要思想是有一個通用的日誌記錄組件,可以插入日誌的任何作業。

有什麼方法可以實現它?

+0

你可以嘗試保持tlogcatcher和邏輯在一個作業中將日誌分離到文件中,然後在第二個作業中包含此作業(使用tRunJob)並僅運行第二個作業。 – garpitmzn

+0

已嘗試此選項,但未嘗試加工。通過tRunjob的文檔,它說一個子作業在另一個子作業完成後觸發。嘗試不同的選擇。 –

回答

1

這裏有3種方式,在彈出:

的log4j:企業版本的log4j建成,這意味着你可以設置TWARN/TDIE調試級別和配置log4j把這些放到不同的文件。 (當使用它時,我發現最好將警告作爲我自己的信息級別日誌,因爲信息級別太深了。) 我確信log4j也可以被打開到工作室。這將解決您的問題。 https://exchange.talend.com在搜索log4j時有很多結果,你應該看看。

joblet:如果你喜歡你目前的方式,我會看到2個選項,爲你。首先是嘗試創建一個joblet,但是從多個作業使用相同的文件不是一個好主意,可能會導致錯誤。這不是一個好的解決方案,但可以工作,如果我們只談論需要產生2個文件的1個工作。

項目級別日誌記錄:您可以嘗試啓用項目級別日誌記錄,但會將所有內容都記錄到文件中。它基本上意味着將logcatcher輸出重定向到一個文件。那1文件不是2,但至少它是有效的。 https://help.talend.com/display/TalendOpenStudioforBigDataUserGuide520EN/2.6+Customizing+project+settings(統計信息&日誌)

真的沒有很好的解決方案,你需要什麼。

+0

我正在研究log4j的Talend Open Studio的選項,但我想澄清一點。我在我的項目中有多個工作,當我運行任何人時,我想根據信息或錯誤生成2個文件。 –

+0

與log4j,你可以通過它們的級別將日誌重定向到不同的appender中(1對於所有錯誤1的信息1等) –

1

Talend具有內置日誌記錄功能,並且其安裝非常簡單。第1步:創建AMC數據庫。第2步。設置記錄的項目級屬性。步驟3.檢查AMC數據庫的日誌。所有錯誤和tWarns將被記錄。可選步驟4:根據AMC數據庫中的日誌記錄數據創建報告。

您可以登錄到文件而不是數據庫,但記錄到數據庫允許更健壯的查詢和報告。此外,如果您將作業從TAC運行出來,您可以將AMC加入到TAC數據庫中,以獲取有關您工作的一些真正有用的報告。

您可以登錄:

  • 錯誤和警告
  • 統計(工作時間)
  • 流量計(數據流指標)

屏幕1只顯示了項目設置在Talend工作室

enter image description here

屏幕2顯示來自AMC數據庫日誌表的查詢。注意還有另外兩個表格,一個用於統計,另一個用於流量。在選中的行中還會注意到有來自tWarn的消息。

enter image description here

+0

感謝您的解釋。我已經使用了這個部分,但是我想爲Talend構建一個Log組件,它可以在任何作業中使用,它爲各個作業創建不同級別的日誌文件,而不是整個項目。 –

+0

爲什麼不按照上面的示例記錄所有內容,然後在報告中提取需要的信息,這可以由Job分解出來?這可能比你提出的要簡單,你可能會發現額外的信息有用。你是否也使用TAC?如果可以的話,你可以通過加入2個數據庫來建立出色的報告。 –

+0

因爲如果你想將它部署到防火牆後面的100臺機器上,那麼logDB不是一種選擇。我不認爲他有TAC,因爲那時log4j會在那裏,開箱即用。 –

0

謝謝大家的支持。我能夠實現我試圖實現的目標。

我已經創建了一個標準作業,這是給twarn和tdie日誌。 然後我有一個joblet,它捕獲日誌並根據錯誤或info/debug分發日誌。

+0

請將其中一個答案標記爲已接受。 –