商業程序錯誤 XML 日誌配接器

「商業程序錯誤 XML 日誌」配接器提供自訂日誌給商業程序,可讀取已建立的日誌以格式化或進行處理。

下表提供「商業程序錯誤 XML 日誌」配接器的概觀:

系統名稱 BPFaultLogXML
圖形程序建模器 (GPM) 種類 所有服務
說明 可讓商業程序撰寫者將商業特定訊息記載到 XML 格式的檔案中。每一個日誌項目是一個 XML 文件片段。
商業用途 使用這項服務可提供自訂日誌給商業程序。這也可以用來讀取已建立的日誌來格式化或處理。
用途範例 您撰寫了一個大型 BPML 來處理小組件,並且想要針對日誌提供意見來追蹤處理程序或任何發生的錯誤。可讀取所產生的 XML 來格式化。 典型讀取範例是使用 XSLT 讀取及格式化成 HTML。
是否已預先配置?
是否需要第三方檔案?
平台可用性 所有受支援的平台
相關服務
應用程式需求 指定磁碟上的位置來傳送及檢視日誌。
是否起始商業程序?
呼叫 必須是商業程序中或 on-fault 處理程式中的一個步驟。
商業程序環境定義考量 以「寫入」作業而言:當設為發生錯誤時失敗,商業程序環境定義狀態會設為「錯誤」。
返回的狀態值
返回的狀態值:
  • 成功
  • 錯誤
註: 以「寫入」作業而言,這個配接器一律傳回「成功」狀態,因為它通常是商業程序的非重要部分。如果發生失敗,會記載它,但商業程序會繼續。
限制
持續性層次 預設值
測試考量

實作商業程序錯誤 XML 日誌配接器

如果要實作「商業程序錯誤 XML 日誌」配接器,請完成下列作業:
  1. 建立「商業程序錯誤 XML 日誌」配接器配置。
  2. 配置「商業程序錯誤 XML 日誌」配接器。
  3. 在商業程序中使用「商業程序錯誤 XML 日誌」配接器。

配置商業程序錯誤 XML 日誌配接器

如果要配置「商業程序錯誤 XML 日誌」配接器,您必須在 GPM 中指定欄位設定:

欄位 說明
Config 服務配置的名稱。
action 有效值包括:
  • 讀取 - 從指定的目錄中讀取指定的日誌,並使用 loggerName 值作為要讀取的日誌檔的字首,並使用 loggerPath 值作為日誌檔所在的目錄路徑。
  • 寫入 - 執行一般日誌寫入作業。
combineLog 有效值包括:
  • True - 將結合日誌。如果有多個日誌檔名稱符合 loggerName 值指定的字首,這些日誌檔會結合成形式完整的 XML,並放到程序資料中成為單一文件。程序資料文件名稱即指定的 loggerName 值。
  • False - 不結合日誌。如果有多個日誌檔名稱符合 loggerName 值指定的字首,每一個日誌檔都會放到程序資料中。程序資料文件名稱與原始日誌檔名稱相同。
fail-on-error 如果記載錯誤,是否使商業程序失敗。選用。有效值為 True 和 False。僅用於「寫入」作業。如果此參數是設為 True,且記載層次參數是設為「錯誤」,則商業程序狀態設為「錯誤」,且商業程序進階狀態是設為日誌訊息中的值。這可讓您強迫平常成功的商業程序失敗(根據無效商業程序資料)。
includeBody 是否包括錯誤訊息及資料主體。必要。僅用於「寫入」作業。包括主體時,只包括前 2048 個位元組。有效值包括:
  • True - 包括錯誤訊息及資料主體。
  • False - 只包括錯誤訊息。
log-level 日誌類型。必要。僅用於「寫入」作業。值為:
  • 除錯 - 供內部使用的錯誤訊息
  • 錯誤 - 商業程序中的一般錯誤
  • 資訊 - 錯誤訊息傳送至的對象
  • 警告 - 商業程序中的重大錯誤
註: 您可以將自訂記載層次新增至 GPM 的這份清單中,或在商業程序編輯器中編輯商業程序。
log-message 您要傳送至日誌的訊息。必要。僅用於「寫入」作業。
loggerName 日誌的名稱。必要。建立在「日誌程式輸出路徑」中的檔案具有此名稱及副檔名 .log。用於「讀取」及「寫入」作業。
loggerPath 用來將日誌寫入檔案中的路徑。必要。用於「讀取」及「寫入」作業。有效值為有效的完整路徑。
logType 選取日誌類型。必要。僅用於「寫入」作業。有效值為「正常」和「累計」。
maxLogSize 累計的日誌大小上限(以位元組為單位)。如果您在服務配置中選取「累計」作為日誌類型,則為必要。 僅用於「寫入」作業。有效值為大於零的數字。

商業程序範例

下列範例顯示如何在商業程序中使用「商業程序錯誤 XML 日誌」配接器:

<process name="default">
  <operation name="BPFaultLogXML">
    <participant name="mybpfaultxmllog"/>
    <output message="BPFaultLogXMLInputMessage">
      <assign to="action">WRITE</assign>
      <assign to="combineLog">false</assign>
      <assign to="fail-on-error">true</assign>
      <assign to="includeBody">true</assign>
      <assign to="log-level">DEBUG</assign>
      <assign to="log-message">hello log</assign>
      <assign to="loggerName">testlog.log</assign>
      <assign to="loggerPath">/home/user/</assign>
      <assign to="logType">normal</assign>
      <assign to="." 
from="*"></assign>
    </output> 
    <input message="inmsg"> 
      <assign to="." 
from="*"></assign>
    </input>
  </operation> 
</process>