撰寫靜態配接器的 Java 類別

在建立靜態日誌剖析器時,會用 Java 類別來取代配接器配置檔的擷取器、剖析器和格式製作器元件。 靜態剖析器類別必須實作 org.eclipse.hyades.logging.parser.IParser 介面。 您可以繼承 org.eclipse.hyades.logging.parser.Parserorg.eclipse.hyades.logging.parser.MonitoringParser 其中一個抽象類別來做到這一點。

繼承 Parser 類別

當您建立靜態剖析器來剖析不會再被更新的日誌檔,或者在環境定義的執行期間剖析日誌檔時,應該使用這個類別。如果使用這個類別,則「環境定義實例」的配置中不可選取「連續作業」勾選框。

  1. 新增 import 陳述式 import org.eclipse.hyades.logging.parsers.Parser;
  2. 新增下列方法到類別中︰

附註:protected 方法 Parser.readALine() 可用來讀取日誌檔的資料。這個方法會從日誌檔讀取一行資料,如果讀取檔案時發生錯誤,將會擲出異常狀況。異常狀況將包含讀取失敗的相關資訊。 現有的 readLine() 方法在發生錯誤時會傳回空值在這個版本中已棄用。

繼承 MonitoringParser 類別

當您需要建立可連續監視日誌檔的靜態剖析器時,應該使用這個類別。附註:這個類別允許監視日誌檔,即使在啟動監視作業時該日誌檔不存在。必須繼承抽象類別 org.eclipse.hyades.logging.parser.MonitoringParser。這個類別繼承 Parser 類別。 要實作的方法與 Parser 類別相同,但請注意下列事項︰

  1. 新增 import 陳述式 import org.eclipse.hyades.logging.parser.MonitoringParser
  2. 如果置換下列的 Parser 方法,請確定置換方法中要呼叫超類別中相對應的方法︰
  3. parseNext() 方法中,於傳回空值指出目前已無剖析記錄可傳回的前面新增 setEndOfFile() 呼叫。這樣可確保下次呼叫 readALine() 時,將會檢查日誌檔以判斷檔案是否變更以及是否有新的記錄可以剖析。
  4. 如果靜態剖析器需要指令將日誌檔轉換為更容易剖析或產生日誌檔的格式,在呼叫 setConfiguration() 之後,必須利用下列其中一個方法呼叫將指令指定給 MonitoringParser 類別︰setConverterCommand(String)setConverterCommand(String[])
    如果指令將日誌資料寫入一個檔名不同於 setConfiguration() 中的配置參數所指定之名稱的檔案,必須使用 setFilename(String) 方法將新的日誌檔名稱指定給 MonitoringParser 類別。

附註

  1. org.eclipse.hyades.logging.parsers 外掛程式現在與 org.eclipse.hyades.logging.adapter 外掛程式存在相依關係。
  2. MonitoringParser 類別不提供直接存取日誌檔,除了 readALine() 方法之外。目前使用 Parser 類別的 logFile 成員直接從日誌檔讀取資料的靜態剖析器應該修改為使用 readALine() 方法。

寫好和測試好 Java 剖析器類別之後,您可以配置配接器配置檔的感應器元件來指向這個類別。.

相關概念
Hyades 通用日誌配接器概觀
Common Base Event 格式規格

相關作業
建立日誌剖析器
建立靜態配接器
配置感應器元件

相關參照
配接器配置檔結構
配接器配置編輯器
正規表示式文法