配置規則型剖析器的剖析器元件
必備條件:
剖析器的角色是採擷取器定界的訊息來建置一組字串值至 Common Base Event 屬性的對映。
如果要配置剖析器元件,您必須配置兩個剖析器執行層次的規則:
- 廣域處理 - 這是一組針對擷取器提供的訊息結果而執行的廣域正規表示式規則。
- 屬性處理 - 這是為了判斷指派給編輯器中指定的各個 Common Base Event 屬性的值,而執行的各組特定替代規則。
- 在配接器配置編輯器的左窗格中,選取配置 > 環境定義實例 > 剖析器。
這時右窗格會顯示剖析器資訊。

- 在說明欄位中,輸入剖析器的說明。
- 如果日誌記錄包含在記錄內為元素定界的分隔字元記號,請在分隔字元記號欄位中輸入記號。
比方說,如果是 myapp 應用程式日誌記錄,元素之間的分隔字元記號就是兩個空格:
<March 14, 2004 10:25:21 EST> application:myapp severity:3 message:WARNING-file style.css missing
分隔字元記號可用正規表示式 [ ]{2} 來指定。
- 如果日誌記錄包含名稱值配對型樣的元素,您可以在指定記號欄位中,指定將名稱關聯於值的記號。
當使用上面的相同範例時,在 myapp 日誌記錄中,指定記號是一個冒號 :。
剖析器第二階段的執行會套用特定替代規則來識別要指派給 Common Base Event 屬性的值。
新增和配置 Common Base Event 屬性
以下是必要的 Common Base Event 屬性:
- creationTime
- situation
- sourceComponentID
如果需要完整的 Common Base Event 屬性清單,請參閱 Common Base Event 模型。
- 在配接器配置編輯器的左窗格中,選取配置 > 環境定義實例 > 剖析器 > Common Base Event。
這時右窗格會顯示 Common Base Event 資訊。
- 如果要新增屬性,請用滑鼠右鍵按一下 Common Base Event 節點,從蹦現功能表中選取要新增的屬性。
屬性會建立在 Common Base Event 節點之下。
下列範例為新增 msg 屬性。

- 如果要配置您剛新增的屬性,請按一下這個屬性。屬性詳細資料會顯示在右窗格中。
- 當使用上述範例時,如果日誌記錄沒有全都包含 msg 屬性,您可以選取利用上一個相符替代項作為預設值勾選框。
這會將上一個相符的訊息指派給 msg 屬性。
- 如果您要設定 msg 的預設值,請在預設值欄位輸入值。
只有在替代規則不存在或不符合,且沒有勾選利用上一個相符替代項作為預設值,或如果勾選了,但並未儲存任何先前相符的值時,才能使用這個預設值。
- 在上述步驟之後,繼續新增所有必要的屬性。
新增和配置屬性替代規則
如果要將替代規則新增至 Common Base Event 屬性中,請選取屬性 > 新增 > 替代規則。
替代規則詳細資料會顯示在編輯器的右窗格中。
- 當日誌記錄包含記號所定界的名稱值配對時,可以使用位置欄位。
名稱值配對的值可以利用 $h('nameofNameValuePair') 原子來擷取。
比方說,當使用 myapp 應用程式的相同日誌記錄:
<March 14, 2004 10:25:21 EST> application:myapp severity:3 message:WARNING-file style.css missing
以及分隔字元記號 = [ ]{2} 和指定記號 =:,用來擷取訊息的原子就是 $h('message')。
關於位置欄位的其他應用,請參閱「位置」欄位用法主題。
- 比對指定記錄中所要搜尋的型樣。
如果指定了「位置」欄位,就會搜尋一部分的記錄,否則將會搜尋整個記錄來尋找指定的型樣。
在這個型樣內,可能會用替代欄位中所能參照的括弧,將某些資料分組在一起。
如果型樣符合記錄中的資料,這個規則所適用的 Common Base Event 屬性將會取得基於「替代」欄位的值。
如果它保留空白,規則會視為相符。
在 myapp 日誌記錄範例中,如果要比對位置欄位所擷取的訊息值,您可以使用下列正規表示式:
^(\w+)-(.*)
這個比對型樣包含兩個群組。
第一個群組是破折號之前的單字字元集。
第二個群組是依照「位置」欄位規格所定義,在破折號之後到訊息值結尾的任何項目。
- 替代欄位是要作為相符項而指派給 Common Base Event 屬性的值。
這些值可利用代表比對型樣所定義之群組的 $1、$2 等文字,從比對的字串中擷取出來。
在 myapp 日誌記錄範例中,如果您只要將警告的值指派給 Common Base Event msg 屬性,請將替代指定為 $2。

- 如果您要在「位置」、「比對」和「替代」等欄位所比對的值上執行自訂剖析邏輯,您可以使用替代繼承類別。
使用者類別必須實作「通用日誌配接器」介面
classorg.eclipse.hyades.logging.adapter.parsers.ISubstitutionExtension
通用日誌配接器才能夠執行它。
- 您可以利用時間格式欄位來建立 creationTime 屬性的替代規則。
請在這個欄位中指定 Java 時間型樣字串。
利用 java.text.SimpleDateFormat 類別來產生 long 值日期的「位置」、「比對」和「替代」等欄位,輸入的型樣將用來剖析它們所比對的值。之後,會利用這個值,以 Common Base Event 所需要的 XML 綱目 dateTime 格式來產生日期的字串值。
在 myapp 日誌記錄範例中,「時間格式」規則如下:

- 套用儲存配接器配置檔而產生的變更。
- 如果要測試您的規則,請按一下重新執行配接器
來執行配接器。結果會顯示在「格式製作器結果」視圖中。
- 按一下顯示下一事件
圖示來檢視利用您撰寫的規則來產生的 Common Base Event 屬性。
附註:如果需要 Java 簡式日期格式的詳細資訊,請參閱 javadoc java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html。
剖析器規則完成之後,您可以配置配接器配置檔的輸出器元件。
相關概念
Hyades 通用日誌配接器概觀
Common Base Event 格式規格
相關作業
建立日誌剖析器
建立規則型配接器
配置輸出器元件
相關參照
配接器配置檔結構
配接器配置編輯器
正規表示式文法
替代規則範例
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.