Abilitazione della registrazione a livello di programmazioneEnabling Logging Programmatically

Il motore di runtime include una raccolta di oggetti LogProvider che consentono l'acquisizione di informazioni specifiche degli eventi durante la convalida e l'esecuzione di pacchetti.The run-time engine provides a collection of LogProvider objects that enable event-specific information to be captured during package validation and execution. Gli oggetti LogProvider sono disponibili per gli oggetti DtsContainer, compresi gli oggetti TaskHost, Package, ForLoop e ForEachLoop.LogProvider objects are available to DtsContainer objects, including the TaskHost, Package, ForLoop, and ForEachLoop objects. La registrazione viene abilitata su singoli contenitori o sull'intero pacchetto.Logging is enabled on individual containers, or on the whole package.

Sono disponibili diversi tipi di provider di log che un contenitore può utilizzare.There are several types of log providers that are available for a container to use. In questo modo è possibile creare e archiviare le informazioni del log in modo flessibile in molti formati.This provides the flexibility to create and store log information in many formats. Per integrare un oggetto contenitore nella registrazione, sono necessari due passaggi: viene innanzitutto abilitata la registrazione, quindi viene selezionato un provider di log.Enlisting a container object in logging is a two-step process: first logging is enabled, and then a log provider is selected. Le proprietà LoggingOptions e LoggingMode del contenitore vengono utilizzate per specificare gli eventi registrati e per selezionare il provider di log.The LoggingOptions and LoggingMode properties of the container are used to specify the logged events and to select the log provider.

Abilitazione della registrazioneEnabling Logging

La proprietà LoggingMode, disponibile in ogni contenitore in grado di eseguire la registrazione, determina se le informazioni degli eventi del contenitore vengono o meno registrate nel log eventi.The LoggingMode property, found in each container that can perform logging, determines whether the container's event information is recorded to the event log. Questa proprietà, a cui viene assegnato un valore della struttura DTSLoggingMode, è ereditata dall'elemento padre del contenitore per impostazione predefinita.This property is assigned a value from the DTSLoggingMode structure, and is inherited from the container's parent by default. Se il contenitore è un pacchetto e pertanto non ha elementi padre, la proprietà utilizza il UseParentSetting, che per impostazione predefinita disabilitato.If the container is a package, and therefore has no parent, the property uses the UseParentSetting, which defaults to Disabled.

Selezione di un provider di logSelecting a Log Provider

Dopo il LoggingMode è impostata su abilitato, viene aggiunto un provider di log per il SelectedLogProviders raccolta del contenitore per completare il processo.After the LoggingMode property is set to Enabled, a log provider is added to the SelectedLogProviders collection of the container to complete the process. La raccolta SelectedLogProviders è disponibile sull'oggetto LoggingOptions e contiene i provider di log selezionati per il contenitore.The SelectedLogProviders collection is available on the LoggingOptions object, and contains the log providers selected for the container. Il metodo Add viene chiamato per creare un provider e per aggiungerlo alla raccolta.The Add method is called to create a provider and add it to the collection. Il metodo restituisce quindi il provider di log aggiunto alla raccolta.The method then returns the log provider that was added to the collection. Ogni provider include impostazioni di configurazione specifiche e queste proprietà vengono impostate tramite la proprietà ConfigString.Each provider has configuration settings that are unique to that provider, and these properties are set using the ConfigString property.

Nella tabella seguente sono elencati i provider di log disponibili, la relativa descrizione e le informazioni su ConfigString.The following table lists the available log providers, their description, and their ConfigString information.

ProviderProvider DescriptionDescription Proprietà ConfigStringConfigString property
SQL Server ProfilerSQL Server Profiler Genera tracce SQL che possono essere acquisite e visualizzate in SQL ServerSQL Server Profiler.Generates SQL traces that may be captured and viewed in SQL ServerSQL Server Profiler. L'estensione predefinita dei file per questo provider è trc.The default file name extension for this provider is .trc. Non è richiesta alcuna configurazione.No configuration is required.
SQL ServerSQL Server Scrive le voci di registro eventi di sysssislog tabella in qualsiasi SQL ServerSQL Server database.Writes event log entries to the sysssislog table in any SQL ServerSQL Server database. Il provider SQL ServerSQL Server richiede che siano specificati la connessione al database e anche il nome del database di destinazione. SQL ServerSQL Server provider requires that the connection to the database be specified, and also the target database name.
File di testoText File Scrive le voci del log eventi in file di testo ASCII in formato delimitato da virgole (CSV).Writes event log entries to ASCII text files in a comma-separated value (CSV) format. L'estensione predefinita dei file per questo provider è log.The default file name extension for this provider is .log. Nome di una gestione connessione file.The name of a file connection manager.
Registro eventi di WindowsWindows Event Log Registra nel registro eventi standard di Windows nel registro applicazioni del computer locale.Logs to standard Windows Event Log on the local computer in the Application log. Non è richiesta alcuna configurazione.No configuration is required.
File XMLXML File Scrive le voci del log eventi in un file in formato XML.Writes event log entries to XML formatted file. L'estensione predefinita dei file per questo provider è xml.The default file name extension for this provider is .xml Nome di una gestione connessione file.The name of a file connection manager.

Gli eventi vengono inclusi o esclusi dal log eventi impostando il EventFilterKind e EventFilter proprietà del contenitore.Events are included in or excluded from the event log by setting the EventFilterKind and the EventFilter properties of the container. Il EventFilterKind struttura contiene due valori, ExclusionFilter e InclusionFilter, che indicano se gli eventi che sono aggiunti il EventFilter sono inclusi nel registro eventi.The EventFilterKind structure contains two values, ExclusionFilter and InclusionFilter, that indicate whether the events that are added to the EventFilter are included in the event log. Il EventFilter proprietà viene quindi assegnata a una matrice di stringhe contenente i nomi degli eventi che vengono eseguita l'applicazione di filtri.The EventFilter property is then assigned a string array that contains the names of the events that are the subject of the filtering.

Nel codice seguente viene abilitata la registrazione su un pacchetto, viene aggiunto il provider di log per i file di testo nella raccolta SelectedLogProviders e viene specificato un elenco di eventi da includere nell'output della registrazione.The following code enables logging on a package, adds the log provider for Text files to the SelectedLogProviders collection, and specifies a list of events to include in the logging output.

EsempioSample

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  

Vedere ancheSee Also

Integration Services ( SSIS ) RegistrazioneIntegration Services (SSIS) Logging