Share via


Habilitando o registro em log programaticamente

O mecanismo de tempo de execução fornece uma coleção de objetos LogProvider que permitem a captura de informações específicas de evento durante a validação e execução de pacotes. Objetos LogProvider estão disponíveis para objetos DtsContainer, incluindo os objetos TaskHost, Package, ForLoop e ForEachLoop. O registro em log é habilitado em contêineres individuais ou no pacote inteiro.

Há vários tipos de provedores de log disponíveis para uso por um contêiner. Isso fornece a flexibilidade para criar e armazenar informações de log em diversos formatos. A inscrição de um objeto contêiner no registro em log é um processo de duas etapas: primeiro o registro é habilitado e depois um provedor de log é selecionado. As propriedades LoggingOptions e LoggingMode do contêiner são usadas para especificar os eventos registrados e selecionar o provedor de log.

Habilitando o registro em log

A propriedade LoggingMode, localizada em cada contêiner que pode executar o registro em log, determina se as informações de evento do contêiner são registradas no log de eventos. É atribuído um valor a essa propriedade a partir da estrutura DTSLoggingMode e ele é herdado por padrão do pai do contêiner. Se o contêiner for um pacote e não tiver pai, a propriedade usará o UseParentSetting, cujo padrão é Disabled.

Selecionando um provedor de log

Depois que a propriedade LoggingMode é definida como Enabled, um provedor de log é adicionado à coleção SelectedLogProviders do contêiner para concluir o processo. A coleção SelectedLogProviders está disponível no objeto LoggingOptions e contém os provedores de log selecionados para o contêiner. O método Add é chamado para criar um provedor e adicioná-lo à coleção. O método retorna o provedor de log que foi adicionado à coleção. Cada provedor tem parâmetros de configuração que são exclusivos desse provedor e essas propriedades são definidas através da propriedade ConfigString.

A tabela a seguir lista os provedores de log disponíveis, sua descrição e as informações sobre ConfigString.

Provedor

Descrição

Propriedade ConfigString

SQL Server Profiler

Gera rastreamentos SQL que podem ser capturados e exibidos no Profiler SQL Server. A extensão de nome de arquivo padrão desse provedor é .trc.

Nenhuma configuração é necessária.

SQL Server

Escreve entradas de log de evento na tabela sysssislog em qualquer banco de dados SQL Server.

O provedor SQL Server requer a especificação da conexão ao banco de dados e também o nome do banco de dados de destino.

Arquivo de texto

Grava entradas do log de eventos em arquivos de texto ASCII em formato CSV (valores separados por vírgula). A extensão de nome de arquivo padrão desse provedor é .log.

O nome do gerenciador de conexões de um arquivo.

Log de eventos do Windows

Conecta-se ao log de eventos padrão do Windows no computador local no log do Aplicativo.

Nenhuma configuração é necessária.

Arquivo XML

Grava entradas do log de eventos no arquivo em formato XML. A extensão padrão do nome de arquivo desse provedor é .xml.

O nome do gerenciador de conexões de um arquivo.

Os eventos são incluídos em ou excluídos do log de eventos através da definição das propriedades EventFilterKind e EventFilter do contêiner. A estrutura EventFilterKind contém dois valores, ExclusionFilter e InclusionFilter, que indicam se os eventos adicionados no EventFilter são incluídos no log de eventos. A propriedade EventFilter recebe uma matriz de cadeia de caracteres que contém os nomes dos eventos que são o assunto da filtragem.

O código a seguir habilita o registro em um pacote, adiciona o provedor de log dos arquivos de Texto à coleção SelectedLogProviders e especifica uma lista de eventos para incluir na saída de log.

Exemplo

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
Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.