创建自定义日志提供程序

Integration Services 运行时环境具有广泛的日志记录功能。 日志可使您捕获在包执行期间发生的事件。 Integration Services 包含各种日志提供程序,可用于创建日志并以诸如 XML、文本、数据库或 Windows 事件日志的格式存储这些日志。 如果这些提供程序或输出格式不能满足您的需要,您可以创建自定义日志提供程序。

创建自定义日志提供程序的步骤与创建其他任何 Integration Services 自定义对象的步骤相似:

  • 创建一个从基类继承的新类。 对于日志提供程序,该基类为 LogProviderBase

  • 将标识对象类型的属性应用于该类。 对于日志提供程序,该属性为 DtsLogProviderAttribute

  • 替代基类的方法和属性的实现。 对于日志提供程序,所涉及的属性和方法包括 ConfigString 属性以及 OpenLogLogCloseLog 方法。

  • SQL Server Integration Services 中不实现自定义日志提供程序的自定义用户界面。

自定义日志提供程序入门

创建项目和类

由于所有托管日志提供程序都派生自 LogProviderBase 基类,所以创建自定义日志提供程序的第一步是以您的首选托管编程语言创建一个类库项目,然后创建一个从该基类继承的类。 在此派生类中重写基类的属性和方法可实现您的自定义功能。

将此项目配置为使用强名称密钥文件对将要生成的程序集进行签名。

注意

许多 Integration Services 日志提供程序都有一个自定义用户界面,该界面实现 IDtsLogProviderUI,并用已筛选的可用连接管理器下拉列表替换“配置 SSIS 日志”对话框中的“配置”文本框。 但是,Integration Services 中不实现自定义日志提供程序的自定义用户界面。

应用 DtsLogProvider 属性

DtsLogProviderAttribute 属性应用于您创建的类以将其标识为日志提供程序。 此属性提供设计时信息,如日志提供程序的名称和说明。 DisplayName属性Description的属性对应于Description列,该编辑器在 SQL Server Data Tools (SSDT) 中为包配置日志记录时显示。

重要

不使用此特性的 LogProviderType 属性。 但是,必须为该属性输入一个值,否则自定义日志提供程序将不会显示在可用日志提供程序列表中。

注意

由于自定义日志提供程序的自定义用户界面不在 Integration Services 中实现,因此,为 UITypeNameDtsLogProviderAttribute 属性指定值将不起作用。

<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 源。

另请参阅

编写自定义日志提供程序编写自定义日志提供程序开发自定义日志提供程序的用户界面