脚本任务中的日志记录

适用于:Azure 数据工厂中的 SQL Server SSIS Integration Runtime

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

注意

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

有关日志记录的详细信息,请参阅 Integration Services (SSIS) 日志记录

日志记录示例

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

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 (SSIS) 日志记录