EventSourceCreationData(String, String) Constructeur
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Initialise une nouvelle instance de la classe EventSourceCreationData avec une source d'événements et un nom de journal des événements spécifiés.
public:
EventSourceCreationData(System::String ^ source, System::String ^ logName);
public EventSourceCreationData (string source, string logName);
new System.Diagnostics.EventSourceCreationData : string * string -> System.Diagnostics.EventSourceCreationData
Public Sub New (source As String, logName As String)
Paramètres
- source
- String
Nom à enregistrer auprès du journal des événements comme source d'entrées.
- logName
- String
Nom du journal dans lequel les entrées de la source sont écrites.
Exemples
L’exemple de code suivant détermine si la source d’événement nommée SampleApplicationSource
est inscrite sur l’ordinateur local. Si la source d’événement n’existe pas, l’exemple définit le fichier de ressources de message pour la source et crée la nouvelle source d’événement. Enfin, l’exemple de code définit le nom complet localisé du journal des événements, à l’aide de la valeur d’identificateur de ressource dans DisplayNameMsgId
et du chemin du fichier de ressources dans messageFile
.
void CreateEventSourceSample1( String^ messageFile )
{
String^ myLogName;
String^ sourceName = "SampleApplicationSource";
// Create the event source if it does not exist.
if ( !EventLog::SourceExists( sourceName ) )
{
// Create a new event source for the custom event log
// named "myNewLog."
myLogName = "myNewLog";
EventSourceCreationData ^ mySourceData = gcnew EventSourceCreationData( sourceName,myLogName );
// Set the message resource file that the event source references.
// All event resource identifiers correspond to text in this file.
if ( !System::IO::File::Exists( messageFile ) )
{
Console::WriteLine( "Input message resource file does not exist - {0}", messageFile );
messageFile = "";
}
else
{
// Set the specified file as the resource
// file for message text, category text, and
// message parameter strings.
mySourceData->MessageResourceFile = messageFile;
mySourceData->CategoryResourceFile = messageFile;
mySourceData->CategoryCount = CategoryCount;
mySourceData->ParameterResourceFile = messageFile;
Console::WriteLine( "Event source message resource file set to {0}", messageFile );
}
Console::WriteLine( "Registering new source for event log." );
EventLog::CreateEventSource( mySourceData );
}
else
{
// Get the event log corresponding to the existing source.
myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
}
// Register the localized name of the event log.
// For example, the actual name of the event log is "myNewLog," but
// the event log name displayed in the Event Viewer might be
// "Sample Application Log" or some other application-specific
// text.
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );
if ( messageFile->Length > 0 )
{
myEventLog->RegisterDisplayName( messageFile, DisplayNameMsgId );
}
}
static void CreateEventSourceSample1(string messageFile)
{
string myLogName;
string sourceName = "SampleApplicationSource";
// Create the event source if it does not exist.
if(!EventLog.SourceExists(sourceName))
{
// Create a new event source for the custom event log
// named "myNewLog."
myLogName = "myNewLog";
EventSourceCreationData mySourceData = new EventSourceCreationData(sourceName, myLogName);
// Set the message resource file that the event source references.
// All event resource identifiers correspond to text in this file.
if (!System.IO.File.Exists(messageFile))
{
Console.WriteLine("Input message resource file does not exist - {0}",
messageFile);
messageFile = "";
}
else
{
// Set the specified file as the resource
// file for message text, category text, and
// message parameter strings.
mySourceData.MessageResourceFile = messageFile;
mySourceData.CategoryResourceFile = messageFile;
mySourceData.CategoryCount = CategoryCount;
mySourceData.ParameterResourceFile = messageFile;
Console.WriteLine("Event source message resource file set to {0}",
messageFile);
}
Console.WriteLine("Registering new source for event log.");
EventLog.CreateEventSource(mySourceData);
}
else
{
// Get the event log corresponding to the existing source.
myLogName = EventLog.LogNameFromSourceName(sourceName,".");
}
// Register the localized name of the event log.
// For example, the actual name of the event log is "myNewLog," but
// the event log name displayed in the Event Viewer might be
// "Sample Application Log" or some other application-specific
// text.
EventLog myEventLog = new EventLog(myLogName, ".", sourceName);
if (messageFile.Length > 0)
{
myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId);
}
}
Public Shared Sub CreateEventSourceSample1(ByVal messageFile As String)
Dim myLogName As String
Dim sourceName As String = "SampleApplicationSource"
' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)
' Create a new event source for the custom event log
' named "myNewLog."
myLogName = "myNewLog"
Dim mySourceData As EventSourceCreationData = New EventSourceCreationData(sourceName, myLogName)
' Set the message resource file that the event source references.
' All event resource identifiers correspond to text in this file.
If Not System.IO.File.Exists(messageFile)
Console.WriteLine("Input message resource file does not exist - {0}", _
messageFile)
messageFile = ""
Else
' Set the specified file as the resource
' file for message text, category text and
' message parameters strings.
mySourceData.MessageResourceFile = messageFile
mySourceData.CategoryResourceFile = messageFile
mySourceData.CategoryCount = CategoryCount
mySourceData.ParameterResourceFile = messageFile
Console.WriteLine("Event source message resource file set to {0}", _
messageFile)
End If
Console.WriteLine("Registering new source for event log.")
EventLog.CreateEventSource(mySourceData)
Else
' Get the event log corresponding to the existing source.
myLogName = EventLog.LogNameFromSourceName(sourceName,".")
End If
' Register the localized name of the event log.
' For example, the actual name of the event log is "myNewLog," but
' the event log name displayed in the Event Viewer might be
' "Sample Application Log" or some other application-specific
' text.
Dim myEventLog As EventLog = New EventLog(myLogName, ".", sourceName)
If messageFile.Length > 0
myEventLog.RegisterDisplayName(messageFile, DisplayNameMsgId)
End If
End Sub
L’exemple de code utilise le fichier texte de message suivant, intégré à la bibliothèque de ressources EventLogMsgs.dll. Un fichier texte de message est la source à partir de laquelle le fichier de ressources de message est créé. Le fichier texte du message définit les identificateurs de ressource et le texte pour la catégorie, le message d’événement et les chaînes d’insertion de paramètre.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Remarques
Pour écrire des entrées dans un journal des événements, vous devez d’abord créer une source d’événements pour le journal des événements. Pour inscrire une nouvelle source, initialiser un EventSourceCreationData instance, configurer les propriétés instance de votre application et appeler la EventLog.CreateEventSource(EventSourceCreationData) méthode . Une fois la source inscrite, vous pouvez écrire des entrées à partir de la source à l’aide des WriteEvent méthodes ou WriteEntry .
Vous pouvez inscrire la source d’événement avec des ressources localisées pour votre catégorie d’événement et vos chaînes de message. Votre application peut écrire des entrées de journal des événements à l’aide d’identificateurs de ressource, plutôt que de spécifier la chaîne réelle. Le observateur d'événements utilise l’identificateur de ressource pour rechercher et afficher la chaîne correspondante à partir du fichier de ressources localisé en fonction des paramètres de langue actuels. Vous pouvez inscrire un fichier distinct pour les catégories d’événements, les messages et les chaînes d’insertion de paramètres, ou vous pouvez inscrire le même fichier de ressources pour les trois types de chaînes. Utilisez les CategoryCountpropriétés , CategoryResourceFile, MessageResourceFileet ParameterResourceFile pour configurer la source afin d’écrire des entrées localisées dans le journal des événements. Si votre application écrit des valeurs de chaîne directement dans le journal des événements, vous n’avez pas besoin de définir ces propriétés.
La source doit être configurée pour écrire des entrées localisées ou pour écrire des chaînes directes. Si votre application écrit des entrées à l’aide d’identificateurs de ressource et de valeurs de chaîne, vous devez inscrire deux sources distinctes. Par exemple, configurez une source avec des fichiers de ressources, puis utilisez cette source dans la WriteEvent méthode pour écrire des entrées à l’aide d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources et utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements.
Le tableau suivant montre les valeurs de propriété initiales d’un EventSourceCreationData.
Propriété | Valeur initiale |
---|---|
Source | Paramètre source . |
LogName | Paramètre logName . |
MachineName | L’ordinateur local (« . »). |
CategoryCount | Zéro |
CategoryResourceFile | null (Nothing en Visual Basic). |
MessageResourceFile | null (Nothing en Visual Basic). |
ParameterResourceFile | null (Nothing en Visual Basic). |