Activation de la journalisation par programme
Le moteur d'exécution fournit une collection d'objets LogProvider qui permettent la capture d'informations spécifiques à un événement au cours de la validation et de l'exécution de package. Les objets LogProvider sont disponibles aux objets DtsContainer, y compris les objets TaskHost, Package, ForLoop et ForEachLoop. La journalisation est activée sur des conteneurs individuels, ou sur l'ensemble du package.
Un conteneur peut utiliser plusieurs types des modules fournisseurs d'informations disponibles. Il est donc possible de créer et stocker des informations de journal dans de multiples formats. L'inscription d'un objet conteneur dans la journalisation s'effectue en deux étapes : d'abord l'activation de la journalisation, puis la sélection d'un module fournisseur d'informations. Les propriétés LoggingOptions et LoggingMode du conteneur permettent de spécifier les événements enregistrés et sélectionner le module fournisseur d'informations.
Activation de la journalisation
La propriété LoggingMode, disponible dans chaque conteneur capable d'exécuter la journalisation, détermine si les informations d'événements du conteneur doivent être enregistrées dans le journal des événements. Cette propriété est affectée d'une valeur issue de la structure DTSLoggingMode et est héritée du parent du conteneur par défaut. Si le conteneur est un package, et n'a donc pas de parent, la propriété utilise UseParentSetting, qui a comme valeur par défaut Disabled.
Sélection d'un module fournisseur d'informations
Lorsque la propriété LoggingMode a la valeur Enabled, un module fournisseur d'informations est ajouté à la collection SelectedLogProviders du conteneur pour terminer le processus. La collection SelectedLogProviders est disponible sur l'objet LoggingOptions et contient les modules fournisseurs d'informations sélectionnés pour le conteneur. La méthode Add est appelée pour créer un fournisseur et l'ajouter à la collection. La méthode retourne ensuite le module fournisseur d'informations qui a été ajouté à la collection. Chaque fournisseur a des paramètres de configuration spécifiques et ces propriétés sont définies à l'aide de la propriété ConfigString.
Le tableau suivant répertorie les modules fournisseurs d'informations disponibles, leur description et leurs informations ConfigString.
Fournisseur |
Description |
Propriété ConfigString |
---|---|---|
SQL Server Profiler |
Génère des traces SQL qui peuvent être capturées et affichées dans SQL Server Profiler. L'extension de nom de fichier par défaut de ce fournisseur est .trc. |
Aucune configuration n'est requise. |
SQL Server |
Écrit les entrées du journal des événements dans la table sysssislog de n'importe quelle base de données SQL Server. |
Le fournisseur SQL Server requiert que la connexion à la base de données soit spécifiée, ainsi que le nom de la base de données cible. |
Fichier texte |
Écrit les entrées du journal des événements dans des fichiers texte ASCII au format CSV. L'extension de nom de fichier par défaut de ce fournisseur est .log. |
Nom d'un gestionnaire de connexions de fichiers. |
Journal des événements Windows |
Enregistre dans le journal des événements Windows standard sur l'ordinateur local dans le journal d'application. |
Aucune configuration n'est requise. |
Fichier XML |
Écrit les entrées du journal des événements dans un fichier au format XML. L'extension de nom de fichier par défaut de ce fournisseur est .xml. |
Nom d'un gestionnaire de connexions de fichiers. |
Les événements sont inclus dans le journal des événements, ou exclus de celui-ci, selon la définition des propriétés EventFilterKind et EventFilter du conteneur. La structure EventFilterKind contient deux valeurs, ExclusionFilter et InclusionFilter, qui indiquent si les événements ajoutés à EventFilter sont inclus dans le journal des événements. Un tableau de chaînes qui contient les noms des événements faisant l'objet du filtrage est ensuite assigné à la propriété EventFilter.
Le code suivant active la journalisation sur un package, ajoute le module fournisseur d'informations pour les fichiers texte à la collection SelectedLogProviders et spécifie une liste d'événements à inclure dans la sortie de la journalisation.
Exemple
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
|
Voir aussi