【问题标题】:How to create an error log or custom error log within an SSIS Package?如何在 SSIS 包中创建错误日志或自定义错误日志?
【发布时间】:2011-08-11 23:23:30
【问题描述】:

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

从 C# 代码中,我得到了 SUCCESS 的执行结果,但在包内 Transactions 没有被执行,所以实际上并没有导出值。

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

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

【问题讨论】:

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


    【解决方案1】:

    这是在 SSIS 中配置日志记录功能的一种方法。在此示例中,我将发送邮件任务配置为失败,并启用了基于 SQL Server 的日志记录,该日志记录将在包失败时存储 OnErrorOnTaskFailed 消息。还有其他您可能感兴趣的活动。在我从事的项目中,这两项任务帮助我确定了 SSIS 包中出现的大部分问题。

    分步过程:

    1. 此示例中的 SSIS 包包含一个发送邮件任务,其配置如屏幕截图 #1 所示。它被配置为失败,因此我们可以在日志表中看到一些错误消息。
    2. 点击 SSIS 包。
    3. 在菜单上,选择 SSIS --> Logging... 请参阅屏幕截图 #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,Send Mail Task 命名为 Email Task。错误消息将从任务冒泡到包级别。因此,错误消息会在任务和包级别记录两次。

    希望对您有所帮助。

    屏幕截图 #1:

    屏幕截图 #2:

    截图#3:

    屏幕截图 #4:

    屏幕截图 #5:

    屏幕截图 #6:

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-01
        • 2023-01-17
        • 1970-01-01
        相关资源
        最近更新 更多