脚本任务中的日志记录

使用 Integration Services 包中的日志记录可以记录预定义的事件或用户定义的消息,从而记录有关执行进度、结果和问题的详细信息,供随后分析时使用。脚本任务可以使用 Dts 对象的 Log 方法记录用户定义的数据。如果启用了日志记录,并且在**“配置 SSIS 日志”对话框的“详细信息”**选项卡中为日志记录选择了 ScriptTaskLogEntry 事件,则调用一次 Log 方法即可将事件信息存储在为该任务配置的所有日志提供程序中。

注意注意

尽管可以直接从脚本任务执行日志记录,但是您可能希望考虑实现事件,而不是日志记录。如果使用事件,不仅能够启用事件消息的日志记录,而且能够通过默认或用户定义的事件处理程序响应事件。

有关日志记录的详细信息,请参阅记录包执行的日志

日志记录示例

下面的示例演示通过记录表示已处理的行数的值,从脚本任务进行日志记录。

Public Sub Main()

    Dim rowsProcessed As Integer = 100
    Dim emptyBytes(0) As Byte

    Try
        Dts.Log("Rows processed: " & rowsProcessed.ToString, _
            0, _
            emptyBytes)
        Dts.TaskResult = ScriptResults.Success
    Catch ex As Exception
        'An error occurred.
        Dts.Events.FireError(0, "Script Task Example", _
            ex.Message & ControlChars.CrLf & ex.StackTrace, _
            String.Empty, 0)
        Dts.TaskResult = ScriptResults.Failure
    End Try

End Sub
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;

public class ScriptMain
{


    public void Main()
        {
            //
            int rowsProcessed = 100;
            byte[] emptyBytes = new byte[0];

            try
            {
                Dts.Log("Rows processed: " + rowsProcessed.ToString(), 0, emptyBytes);
                Dts.TaskResult = (int)ScriptResults.Success;
            }
            catch (Exception ex)
            {
                //An error occurred.
                Dts.Events.FireError(0, "Script Task Example", ex.Message + "\r" + ex.StackTrace, String.Empty, 0);
                Dts.TaskResult = (int)ScriptResults.Failure;
            }

        }

}

外部资源

Integration Services 图标(小) 使 Integration Services 保持最新

若要从 Microsoft 获得最新的下载内容、文章、示例和视频,以及从社区获得所选解决方案,请访问 MSDN 或 TechNet 上的 Integration Services 页:

若要获得有关这些更新的自动通知,请订阅该页上提供的 RSS 源。