Habilitar el registro mediante programación
El motor en tiempo de ejecución proporciona una colección de objetos LogProvider que permiten capturar información específica del evento durante la validación y ejecución de paquetes. Los objetos LogProvider están disponibles para los objetos DtsContainer, incluidos los objetos TaskHost, Package, ForLoop y ForEachLoop. El registro se habilita en contenedores individuales o en el paquete completo.
Existen diferentes tipos de proveedores de registro disponibles para que los utilice un contenedor. Esto proporciona la flexibilidad necesaria para crear y almacenar información del registro en distintos formatos. Dar de alta un objeto contenedor en el registro es un proceso de dos pasos: en primer lugar se habilita el registro y, a continuación, se selecciona un proveedor de registro. Las propiedades LoggingOptions y LoggingMode del contenedor se utilizan para especificar los eventos registrados y seleccionar el proveedor de registro.
Habilitar el registro
La propiedad LoggingMode, incluida en cada contenedor que puede realizar el registro, determina si la información de evento del contenedor se registra en el registro de eventos. El valor de esta propiedad se asigna desde la estructura DTSLoggingMode y se hereda de forma predeterminada del elemento primario del contenedor. Si el contenedor es un paquete, y por tanto no dispone de elemento primario, la propiedad utiliza UseParentSetting, que tiene como valor predeterminado Disabled.
Seleccionar un proveedor de registro
Una vez establecida la propiedad LoggingMode en Enabled, se agrega un proveedor de registro a la colección SelectedLogProviders del contenedor para completar el proceso. La colección SelectedLogProviders está disponible en el objeto LoggingOptions y contiene los proveedores de registro seleccionados para el contenedor. Se llama al método Add para crear un proveedor y agregarlo a la colección. El método devuelve el proveedor de registro que se agregó a la colección. Cada proveedor incluye configuración única para dicho proveedor; estas propiedades se establecen mediante la propiedad ConfigString.
En la tabla siguiente se enumeran los proveedores de registro disponibles, su descripción y su información ConfigString.
Proveedor |
Descripción |
Propiedad ConfigString |
---|---|---|
SQL Server Profiler |
Genera archivos de seguimiento de SQL que se pueden capturar y ver en SQL Server Profiler. La extensión predeterminada de los nombres de archivo de este proveedor es .trc. |
No se requiere ninguna configuración. |
SQL Server |
Escribe las entradas del registro de eventos en la tabla sysssislog de cualquier base de datos de SQL Server. |
El proveedor SQL Server requiere que se especifique la conexión a la base de datos y el nombre de la base de datos de destino. |
Archivo de texto |
Escribe las entradas de registro de eventos en archivos de texto ASCII con un formato de valores separados por comas (CSV). La extensión predeterminada de los nombres de archivo de este proveedor es .log. |
El nombre de un administrador de conexión de archivos. |
Registro de eventos de Windows |
Escribe las entradas en el registro de eventos estándar de Windows en el equipo local, en el registro de aplicaciones. |
No se requiere ninguna configuración. |
Archivo XML |
Escribe las entradas del registro de eventos en archivos con formato XML. La extensión predeterminada de los nombres de archivo de este proveedor es .xml. |
El nombre de un administrador de conexión de archivos. |
Los eventos se incluyen en o excluyen del registro de eventos mediante las propiedades EventFilterKind y EventFilter del contenedor. La estructura EventFilterKind contiene dos valores, ExclusionFilter e InclusionFilter, que indican si los eventos que se agregan a EventFilter se incluyen en el registro de eventos. A continuación se asigna una matriz de cadenas que contiene los nombres de los eventos sujetos del filtrado a la propiedad EventFilter.
El código siguiente habilita el registro en un paquete, agrega el proveedor de registro para archivos de texto a la colección SelectedLogProviders y especifica una lista de eventos para incluir en la salida del registro.
Ejemplo
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.Dts.Samples
{
class Program
{
static void Main(string[] args)
{
Package p = new Package();
ConnectionManager loggingConnection = p.Connections.Add("FILE");
loggingConnection.ConnectionString = @"C:\SSISPackageLog.txt";
LogProvider provider = p.LogProviders.Add("DTS.LogProviderTextFile.2");
provider.ConfigString = loggingConnection.Name;
p.LoggingOptions.SelectedLogProviders.Add(provider);
p.LoggingOptions.EventFilterKind = DTSEventFilterKind.Inclusion;
p.LoggingOptions.EventFilter = new String[] { "OnPreExecute",
"OnPostExecute", "OnError", "OnWarning", "OnInformation" };
p.LoggingMode = DTSLoggingMode.Enabled;
// Add tasks and other objects to the package.
}
}
}
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim p As Package = New Package()
Dim loggingConnection As ConnectionManager = p.Connections.Add("FILE")
loggingConnection.ConnectionString = "C:\SSISPackageLog.txt"
Dim provider As LogProvider = p.LogProviders.Add("DTS.LogProviderTextFile.2")
provider.ConfigString = loggingConnection.Name
p.LoggingOptions.SelectedLogProviders.Add(provider)
p.LoggingOptions.EventFilterKind = DTSEventFilterKind.Inclusion
p.LoggingOptions.EventFilter = New String() {"OnPreExecute", _
"OnPostExecute", "OnError", "OnWarning", "OnInformation"}
p.LoggingMode = DTSLoggingMode.Enabled
' Add tasks and other objects to the package.
End Sub
End Module
|
Vea también