Compartilhar via


Habilitando o registro em log programaticamente

Aplica-se a:SQL Server SSIS Integration Runtime no Azure Data Factory

O mecanismo de tempo de execução fornece uma coleção de objetos LogProvider que permitem que informações específicas a eventos sejam capturadas durante a validação e a execução de pacotes. Os objetos LogProvider estão disponíveis para objetos DtsContainer, inclusive 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, que assume o valor Disabled por padrão.

Selecionando um provedor de log

Depois que a propriedade LoggingMode é definida como Enabled, um provedor de logs é 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 do SQL que podem ser capturados e exibidos no SQL Server Profiler. A extensão de nome de arquivo padrão deste provedor é .trc. Nenhuma configuração é necessária.
SQL Server Escreve entradas de log de eventos na tabela sysssislog em qualquer banco de dados do SQL Server. O provedor do SQL Server exige a especificação da conexão ao banco de dados e 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 deste 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 no log de eventos ou excluídos dele configurando as propriedades EventFilterKind e EventFilter do contêiner. A estrutura EventFilterKind contém dois valores, ExclusionFilter e InclusionFilter, que indicam se os eventos que são adicionados ao EventFilter estã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.

Amostra

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  

Consulte Também

Log do SSIS (Integration Services)