如何在SSIS包中创建错误日志或自定义错误日志?

goo*_*yui 7 ssis sql-server-2005 sql-server-2008

我正在研究SQL 2008 - SSIS包.我正在从C#代码执行包.这是简单的平面文件(.csv)到SQL表.

从C#代码中,我获得了执行结果,SUCCESS但是在包内没有采用事务,因此实际上没有导出值.

我需要通过读取日志文件来调试它.

如何在包内创建错误日志或日志文件?

小智 21

以下是在SSIS中配置日志记录功能的一种方法.在此示例中,我将Send Mail Task配置为失败,并且我已启用基于SQL Server的日志记录,该日志将在程序包发生故障时存储OnErrorOnTaskFailed消息.您还可以感兴趣其他活动.在我工作的项目中,这两项任务帮助我确定了SSIS包中出现的大多数问题.

分步过程:

  1. 此示例中的SSIS包包含配置的发送邮件任务,如屏幕截图#1所示.它配置为失败,因此我们可以在日志表中看到一些错误消息.
  2. 单击SSIS包.
  3. 在菜单上,选择SSIS - > Logging ...参见屏幕截图#2.
  4. 在"配置SSIS日志:"对话框中,选择提供程序类型,然后单击"添加".我为此示例选择了SQL Server.选中Name复选框并在Configuration列下提供数据源.这里SQLServer是连接管理器的名称.SSIS将在您选择的数据库中创建一个名为table dbo.sysssislogand stored procedure 的表dbo.sp_ssis_addlogentry.请参阅下面的截屏#3.
  5. 如果您需要捕获错误,请选中复选框OnErrorOnTaskFailed.请参阅下面的截屏#4.
  6. 数据流任务中的示例包执行如下面的屏幕截图#5所示.
  7. 日志表的示例输出dbo.sysssislog显示在下面的屏幕截图#6中.我只显示几列id,event,sourcemessage.表中还有其他列.消息列包含错误消息,在这种情况下,发送邮件任务中提到的服务器名称是错误的.源列包含失败的任务.在这种情况下,包名称为SSISLoggingExample,Send Mail Task命名为Email Task.错误消息将从任务冒泡到包级别.因此,错误消息在任务和包级别下记录两次.

希望有所帮助.

截图#1:

1

截图#2:

2

截图#3:

3

截图#4:

4

截图#5:

五

截图#6:

6


pra*_*ech 3

在 SSIS 中记录错误非常容易。转到事件处理程序选项卡,从下拉列表中选择 OnError。现在,您可以在此处发送有关任何错误的电子邮件,或者您可以开发自己的自定义逻辑以将错误记录到数据库或写入文本文件。

此外,您还可以从 SSIS 中现有的日志记录机制中进行选择。单击菜单“SSIS”,您将看到第一个选项“日志记录”,然后您将看到用于记录错误/警告以及您需要的大量信息的不同选项。