建立自訂記錄提供者

Integration Services 執行階段環境具有廣泛的記錄功能。 用於擷取封裝執行期間所發生之事件的記錄檔。 Integration Services 包括各種記錄提供者,讓您能以多種格式 (例如 XML、文字、資料庫或 Windows 事件記錄檔) 建立並儲存記錄。 如果這些提供者或輸出格式都不符合您的需求,可以建立自訂記錄提供者。

建立自訂記錄提供者涉及的步驟類似於為 Integration Services 建立任何其他自訂物件的步驟:

  • 建立繼承自基底類別的新類別。 對於記錄提供者而言,基底類別是 LogProviderBase

  • 將可識別物件類型的屬性套用至類別。 對於記錄提供者而言,屬性是 DtsLogProviderAttribute

  • 覆寫基底類別之方法與屬性的實作。 對於記錄提供者而言,這些包括 ConfigString 屬性以及 OpenLogLogCloseLog 方法。

  • 在 SQL Server Integration Services 中並未實作自訂記錄提供者的自訂使用者介面。

開始使用自訂記錄提供者

建立專案和類別

因為所有的 Managed 記錄提供者都是從 LogProviderBase 基底類別衍生,所以在建立自訂記錄提供者時的第一個步驟是以慣用的 Managed 程式語言建立類別庫專案,然後建立繼承自基底類別的類別。 在此衍生的類別中,您將覆寫基底類別的方法與屬性,以實作自訂功能。

設定專案以使用強式名稱金鑰檔案來簽署將產生的組件。

注意

許多 Integration Services 記錄提供者都有自訂使用者介面,以實作 IDtsLogProviderUI,以及使用可用連線管理員的篩選下拉式清單,取代 [設定 SSIS 記錄] 對話方塊中的 [設定] 文字方塊。 不過,在 Integration Services 中並未實作自訂記錄提供者的自訂使用者介面。

套用 DtsLogProvider 屬性

DtsLogProviderAttribute 屬性套用至您已建立的類別,以便將它識別為記錄提供者。 此屬性會提供記錄提供者的名稱和描述等設計階段資訊。 屬性DisplayName的 和 Description 屬性會對應至設定 SSIS 記錄編輯器中顯示的名稱和Description數據行,這會在 SQL Server Data Tools (SSDT) 中設定封裝的記錄時顯示。

重要

未使用屬性 (Attribute) 的 LogProviderType 屬性 (Property)。 不過,您必須為它輸入值,否則自訂記錄提供者將不會顯示在可用記錄提供者的清單中。

注意

既然在 Integration Services 中未實作自訂記錄提供者的自訂使用者介面,為 DtsLogProviderAttributeUITypeName 屬性指定一值就沒有作用。

<DtsLogProvider(DisplayName:="MyLogProvider", Description:="A simple log provider.", LogProviderType:="Custom")> _
Public Class MyLogProvider
     Inherits LogProviderBase
    ' TODO: Override the base class methods.
End Class
[DtsLogProvider(DisplayName="MyLogProvider", Description="A simple log provider.", LogProviderType="Custom")]
public class MyLogProvider : LogProviderBase
{
    // TODO: Override the base class methods.
}

建立、部署和偵錯自訂記錄提供者

在 Integration Services 中建置、部署和偵錯自訂記錄提供者的步驟,非常類似於其他類型自訂物件所需的步驟。 如需詳細資訊,請參閱建立、部署和偵錯自訂物件

Integration Services 圖示 (小型) 使用 Integration Services 保持最新狀態
如需來自Microsoft的最新下載、文章、範例和影片,以及來自社群的所選解決方案,請流覽 MSDN 上的 Integration Services 頁面:

流覽 MSDN 上的 Integration Services 頁面

如需這些更新的自動通知,請訂閱頁面上可用的 RSS 摘要。

另請參閱

撰寫自定義記錄提供者撰寫自定義記錄提供者開發自定義記錄提供者的使用者介面