配置規則型剖析器的剖析器元件
剖析器的角色是採擷取器定界的訊息來建置一組字串值至 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 屬性:
- creationTime
- situation
- sourceComponentID
如果需要完整的 Common Base Event 元素清單及其相關聯的屬性,請參閱 Common Base Event 模型。
新增和配置元素與屬性
如果要新增和配置元素,請執行下列步驟:
- 在配接器配置編輯器的左窗格中,選取配置 > 環境定義實例 > 剖析器 > Common Base Event。
這時右窗格會顯示 Common Base Event 資訊。
- 如果要新增元素,請用滑鼠右鍵按一下 Common Base Event 節點,從蹦現功能表中選取要新增的元素。
元素會建立在 Common Base Event 節點之下。
在下列範例中,
已新增狀況元素。

- 如果要配置您剛剛新增的元素,請按一下該元素。元素內容會顯示在右窗格中。
- 母項所需勾選框可讓您指定這個元素是否要包含一個有效值,才能讓母項元素有效。
在上述範例中,如果為狀況元素選取勾選框,則表示向剖析器指出 Common Base Event 物件必須包含一個有效的狀況元素。
在處理期間,如果狀況元素傳回空值,剖析器便不會處理 Common Base Event 物件的任何其他子元素,
因為剖析器已經知道這個 Common Base Event 物件是無效的,因為所需子元素傳回一個無效值。
- 子項選擇勾選框可讓您指定有效子項屬性或元素傳回有效值時,是否要停止這個元素的處理程序。
例如,考量上方所顯示的狀況元素。該元素有三個各有子樹狀結構的子元素。
如果為狀況元素選取了子項選取勾選框,則會在傳回有效值的第一個子項子樹狀結構中,停止剖析作業。這個特性明顯提升了剖析具有多個子元素或屬性之元素的效能。
附註:categoryName 是狀況的必要屬性,但如果其中一個狀況類型元素傳回值,「通用日誌配接器」就會將 categoryName 設定成適當的值。
如果要新增和配置屬性,請執行下列步驟:
- 在配接器配置編輯器的左窗格中,選取配置 > 環境定義實例 > 剖析器 > 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。

- 如果您要在「位置」、「比對」和「替代」等欄位所比對的值上執行自訂剖析邏輯,您可以使用替代繼承類別。
使用者類別必須實作「通用日誌配接器」介面
org.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, 2005. All Rights Reserved.