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

时间:2011-04-24 19:19:09

标签: sql-server-2005 sql-server-2008 ssis

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

从C#代码中,我得到执行结果为SUCCESS但是在包中没有采用事务处理,因此实际上没有导出值。

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

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

2 个答案:

答案 0 :(得分:20)

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

分步流程:

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

    屏幕截图#1:

    1

    屏幕截图#2:

    2

    屏幕截图#3:

    3

    屏幕截图#4:

    4

    屏幕截图#5:

    5

    屏幕截图#6:

    6

答案 1 :(得分:2)

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

此外,您可以选择SSIS中现有的日志记录机制。单击菜单“SSIS”,您将看到第一个选项作为日志记录,然后您将看到记录错误/警告和所需的大量信息的不同选项。