EventLog.CreateEventSource Méthode

Définition

Définit une application comme capable d'écrire des événements dans un fichier journal spécifique sur le système.

Surcharges

CreateEventSource(EventSourceCreationData)

Définit une source d'événements valide pour l'écriture de messages d'événements localisés, à l'aide des propriétés de configuration spécifiées pour la source d'événements et le journal des événements correspondant.

CreateEventSource(String, String)

Établit le nom de source spécifié comme étant une source d'événement valide pour enregistrer des entrées dans un journal sur l'ordinateur local. Cette méthode peut également créer un nouveau journal personnalisé sur l'ordinateur local.

CreateEventSource(String, String, String)
Obsolète.
Obsolète.
Obsolète.

Établit le nom de source spécifié comme étant une source d'événement valide pour enregistrer des entrées dans un journal sur l'ordinateur spécifié. Cette méthode peut également être utilisée pour créer un nouveau journal personnalisé sur l'ordinateur spécifié.

CreateEventSource(EventSourceCreationData)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Définit une source d'événements valide pour l'écriture de messages d'événements localisés, à l'aide des propriétés de configuration spécifiées pour la source d'événements et le journal des événements correspondant.

public:
 static void CreateEventSource(System::Diagnostics::EventSourceCreationData ^ sourceData);
public static void CreateEventSource (System.Diagnostics.EventSourceCreationData sourceData);
static member CreateEventSource : System.Diagnostics.EventSourceCreationData -> unit
Public Shared Sub CreateEventSource (sourceData As EventSourceCreationData)

Paramètres

sourceData
EventSourceCreationData

Propriétés de configuration pour la source d'événements et son journal des événements cible.

Exceptions

Le nom de l'ordinateur spécifié dans sourceData n'est pas valide.

- ou -

Le nom de source spécifié dans sourceData a la valeur null.

- ou -

Le nom du journal spécifié dans sourceData n'est pas valide. Les noms de journal des événements doivent se composer de caractères imprimables et ne peuvent pas inclure les caractères « * », « ? » ou « \ ».

- ou -

Le nom du journal spécifié dans sourceData n'est pas valide pour la création d'un journal utilisateur. Les noms des journaux d'événements AppEvent, SysEvent et SecEvent sont réservés au système.

- ou -

Le nom du journal correspond à un nom de source d'événements existant.

- ou -

Le nom de source spécifié dans sourceData fournit un chemin d'accès à la clé de Registre dépassant 254 caractères.

- ou -

Les 8 premiers caractères du nom du journal spécifiés dans sourceData ne sont pas uniques.

- ou -

Le nom de source spécifié dans sourceData est déjà enregistré.

- ou -

Le nom de source spécifié dans sourceData correspond à un nom de journal des événements existant.

La clé de Registre du journal des événements n'a pas pu être ouverte.

sourceData a la valeur null.

Exemples

L’exemple 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 définit le nom d’affichage localisé du journal des événements, en utilisant la valeur d’identificateur de ressource dans DisplayNameMsgId et le 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 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 les chaînes d’insertion de catégorie, de message d’événement et de paramètre. Plus précisément, l’identificateur de ressource 5001 est défini pour le nom localisé du journal des événements.

; // 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

Utilisez cette surcharge pour configurer une nouvelle source pour écrire des entrées dans un journal des événements sur l’ordinateur local ou un ordinateur distant. Il n’est pas nécessaire d’utiliser cette méthode pour lire à partir d’un journal des événements.

La CreateEventSource méthode utilise les propriétés d’entrée sourceDataSourceet LogName pour MachineName créer des valeurs de Registre sur l’ordinateur cible pour la nouvelle source et le journal des événements associé. Un nouveau nom source ne peut pas correspondre à un nom de source existant ou à un nom de journal des événements existant sur l’ordinateur cible. Si la LogName propriété n’est pas définie, la source est inscrite pour le journal des événements de l’application. Si le MachineName n’est pas défini, la source est inscrite sur l’ordinateur local.

Notes

Pour créer une source d’événements dans Windows Vista et versions ultérieures ou Windows Server 2003, vous devez disposer de privilèges d’administration.

La raison de cette exigence est que tous les journaux d’événements, y compris la sécurité, doivent être recherchés pour déterminer si la source d’événement est unique. À compter de Windows Vista, les utilisateurs n’ont pas l’autorisation d’accéder au journal de sécurité ; par conséquent, un SecurityException est jeté.

À compter de Windows Vista, le contrôle de compte d’utilisateur (UAC) détermine les privilèges d’un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède au journal de sécurité, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.

Utilisez WriteEvent et WriteEntry pour écrire des événements dans un journal des événements. Vous devez spécifier une source d’événements pour écrire des événements ; vous devez créer et configurer la source d’événements avant d’écrire la première entrée avec la source.

Create la nouvelle source d’événement pendant l’installation de votre application. Cela laisse le temps au système d’exploitation d’actualiser sa liste des sources d’événements inscrites et leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’une EventLogInstaller, ou à l’aide de la CreateEventSource méthode . Vous devez disposer de droits d’administration sur l’ordinateur pour créer une source d’événement.

Vous pouvez créer une source d’événements pour un journal des événements existant ou un nouveau journal des événements. Lorsque vous créez une source pour un nouveau journal des événements, le système inscrit la source pour ce journal, mais le journal n’est créé que lorsque la première entrée y est écrite.

Le système d’exploitation stocke les journaux des événements sous forme de fichiers. Lorsque vous utilisez EventLogInstaller ou CreateEventSource pour créer un journal des événements, le fichier associé est stocké dans le répertoire %SystemRoot%\System32\Config sur l’ordinateur spécifié. Le nom de fichier est défini en ajoutant les 8 premiers caractères de la propriété avec l’extension Log de nom de fichier .evt ».

Chaque source ne peut écrire que dans un seul journal des événements à la fois ; Toutefois, votre application peut utiliser plusieurs sources pour écrire dans plusieurs journaux d’événements. Par exemple, votre application peut nécessiter plusieurs sources configurées pour différents journaux d’événements ou différents fichiers de ressources.

Vous pouvez inscrire la source d’événement avec des fichiers de ressources localisés 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 ressources, 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înes 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 méthode pour écrire des entrées à l’aide WriteEvent d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources, puis utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements à l’aide de cette source.

Pour modifier les détails de configuration d’une source existante, vous devez supprimer la source, puis la créer avec la nouvelle configuration. Si d’autres applications ou composants utilisent la source existante, créez une source avec la configuration mise à jour au lieu de supprimer la source existante.

Notes

Si une source est configurée pour un journal des événements et que vous la reconfigurez pour un autre journal des événements, vous devez redémarrer l’ordinateur pour que les modifications prennent effet.

Voir aussi

S’applique à

CreateEventSource(String, String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Établit le nom de source spécifié comme étant une source d'événement valide pour enregistrer des entrées dans un journal sur l'ordinateur local. Cette méthode peut également créer un nouveau journal personnalisé sur l'ordinateur local.

public:
 static void CreateEventSource(System::String ^ source, System::String ^ logName);
public static void CreateEventSource (string source, string logName);
static member CreateEventSource : string * string -> unit
Public Shared Sub CreateEventSource (source As String, logName As String)

Paramètres

source
String

Nom de la source grâce à laquelle l'application est inscrite sur l'ordinateur local.

logName
String

Nom du journal dans lequel les entrées de la source sont écrites. Les valeurs possibles sont notamment : journal d'événements d'applications, système ou personnalisé.

Exceptions

source est une chaîne vide ("") ou a la valeur null.

- ou -

logName n'est pas un nom de journal des événements valide. Les noms du journal des événements doivent se composer de caractères imprimables et ne peuvent pas inclure les caractères « * », « ? » ou « \ ».

- ou -

logName n'est pas valide pour la création du journal d'utilisateur. Les noms des journaux d'événements AppEvent, SysEvent et SecEvent sont réservés au système.

- ou -

Le nom du journal correspond à un nom de source d'événements existant.

- ou -

Le nom de source fournit un chemin d'accès de clé de Registre dépassant 254 caractères.

- ou -

Les 8 premiers caractères de logName correspondent aux 8 premiers caractères d'un nom de journal des événements existant.

- ou -

La source ne peut pas être inscrite, car elle existe déjà sur l'ordinateur local.

- ou -

Le nom de source correspond à un nom de journal des événements existant.

La clé de Registre du journal des événements n'a pas pu être ouverte sur l'ordinateur local.

Exemples

L’exemple suivant crée la source MySource si elle n’existe pas déjà et écrit une entrée dans le journal MyNewLogdes événements .

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource" ) )
   {
      //An event log source should not be created and immediately used.
      //There is a latency time to enable the source, it should be created
      //prior to executing the application that uses the source.
      //Execute this sample a second time to use the new source.
      EventLog::CreateEventSource( "MySource", "MyNewLog" );
      Console::WriteLine( "CreatingEventSource" );
      // The source is created.  Exit the application to allow it to be registered.
      return 0;
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew EventLog;
   myLog->Source = "MySource";
   
   // Write an informational entry to the event log.    
   myLog->WriteEntry( "Writing to event log." );
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
             //An event log source should not be created and immediately used.
             //There is a latency time to enable the source, it should be created
             //prior to executing the application that uses the source.
             //Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatedEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.
        myLog.WriteEntry("Writing to event log.");
    }
}
Option Explicit
Option Strict

Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        
        If Not EventLog.SourceExists("MySource") Then
            ' Create the source, if it does not already exist.
            ' An event log source should not be created and immediately used.
            ' There is a latency time to enable the source, it should be created
            ' prior to executing the application that uses the source.
            ' Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog")
            Console.WriteLine("CreatingEventSource")
            'The source is created.  Exit the application to allow it to be registered.
            Return
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As New EventLog()
        myLog.Source = "MySource"
        
        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")
    End Sub
End Class

Remarques

Utilisez cette surcharge pour créer un journal personnalisé ou pour créer et inscrire un Source dans un journal existant sur l’ordinateur local.

Si logName est null ou une chaîne vide («  ») lorsque vous appelez CreateEventSource, le journal est défini par défaut sur le journal des applications. Si le journal n’existe pas sur l’ordinateur local, le système crée un journal personnalisé et inscrit votre application en tant que Source pour ce journal.

Notes

Pour créer une source d’événement dans Windows Vista et versions ultérieures ou Windows Server 2003, vous devez disposer de privilèges d’administration.

La raison de cette exigence est que tous les journaux des événements, y compris la sécurité, doivent être recherchés pour déterminer si la source de l’événement est unique. À compter de Windows Vista, les utilisateurs n’ont pas l’autorisation d’accéder au journal de sécurité . par conséquent, un SecurityException est levée.

Dans Windows Vista et version ultérieure, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède au journal de sécurité, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.

Vous devez uniquement créer une source d’événements si vous écrivez dans le journal des événements. Avant d’écrire une entrée dans un journal des événements, vous devez inscrire la source des événements auprès du journal des événements en tant que source valide d’événements. Lorsque vous écrivez une entrée de journal, le système utilise pour Source trouver le journal approprié dans lequel placer votre entrée. Si vous lisez le journal des événements, vous pouvez spécifier , Sourceou un Log et MachineName.

Notes

Vous n’êtes pas obligé de spécifier si MachineName vous vous connectez à un journal sur l’ordinateur local. Si vous ne spécifiez pas lors de la MachineName lecture à partir d’un journal, l’ordinateur local (« . ») est supposé.

Utilisez WriteEvent et WriteEntry pour écrire des événements dans un journal des événements. Vous devez spécifier une source d’événement pour écrire des événements ; vous devez créer et configurer la source d’événement avant d’écrire la première entrée avec la source.

Create la nouvelle source d’événement lors de l’installation de votre application. Cela laisse le temps au système d’exploitation d’actualiser sa liste des sources d’événements inscrites et leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’un EventLogInstaller, ou à l’aide de la CreateEventSource méthode . Vous devez disposer des droits d’administration sur l’ordinateur pour créer une source d’événement.

Vous pouvez créer une source d’événements pour un journal des événements existant ou un nouveau journal des événements. Lorsque vous créez une source pour un nouveau journal des événements, le système enregistre la source pour ce journal, mais le journal n’est créé qu’une fois que la première entrée n’y est pas écrite.

Le système d’exploitation stocke les journaux des événements sous forme de fichiers. Lorsque vous utilisez EventLogInstaller ou CreateEventSource pour créer un journal des événements, le fichier associé est stocké dans le répertoire %SystemRoot%\System32\Config sur l’ordinateur spécifié. Le nom de fichier est défini en ajoutant les 8 premiers caractères de la Log propriété avec l’extension de nom de fichier .evt.

La source doit être unique sur l’ordinateur local ; Un nouveau nom de source ne peut pas correspondre à un nom de source existant ou à un nom de journal des événements existant. Chaque source peut écrire dans un seul journal des événements à la fois ; Toutefois, votre application peut utiliser plusieurs sources pour écrire dans plusieurs journaux d’événements. Par exemple, votre application peut nécessiter plusieurs sources configurées pour différents journaux d’événements ou différents fichiers de ressources.

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 à l’aide de cette source.

Pour modifier les détails de configuration d’une source existante, vous devez supprimer la source, puis la créer avec la nouvelle configuration. Si d’autres applications ou composants utilisent la source existante, créez une source avec la configuration mise à jour au lieu de supprimer la source existante.

Notes

Si une source a déjà été mappée à un journal et que vous la remapper à un nouveau journal, vous devez redémarrer l’ordinateur pour que les modifications prennent effet.

Voir aussi

S’applique à

CreateEventSource(String, String, String)

Source:
EventLog.cs
Source:
EventLog.cs
Source:
EventLog.cs

Attention

This method has been deprecated. Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead. http://go.microsoft.com/fwlink/?linkid=14202

Attention

This method has been deprecated. Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead. https://go.microsoft.com/fwlink/?linkid=14202

Attention

EventLog.CreateEventSource has been deprecated. Use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.

Établit le nom de source spécifié comme étant une source d'événement valide pour enregistrer des entrées dans un journal sur l'ordinateur spécifié. Cette méthode peut également être utilisée pour créer un nouveau journal personnalisé sur l'ordinateur spécifié.

public:
 static void CreateEventSource(System::String ^ source, System::String ^ logName, System::String ^ machineName);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static void CreateEventSource (string source, string logName, string machineName);
[System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")]
public static void CreateEventSource (string source, string logName, string machineName);
[System.Obsolete("EventLog.CreateEventSource has been deprecated. Use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.")]
public static void CreateEventSource (string source, string logName, string machineName);
public static void CreateEventSource (string source, string logName, string machineName);
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")>]
static member CreateEventSource : string * string * string -> unit
[<System.Obsolete("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  https://go.microsoft.com/fwlink/?linkid=14202")>]
static member CreateEventSource : string * string * string -> unit
[<System.Obsolete("EventLog.CreateEventSource has been deprecated. Use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.")>]
static member CreateEventSource : string * string * string -> unit
static member CreateEventSource : string * string * string -> unit
Public Shared Sub CreateEventSource (source As String, logName As String, machineName As String)

Paramètres

source
String

Source grâce à laquelle l'application est inscrite sur l'ordinateur spécifié.

logName
String

Nom du journal dans lequel les entrées de la source sont écrites. Les valeurs possibles sont notamment : journal d'événements d'applications, système ou personnalisé. Si vous ne spécifiez pas de valeur, le paramètre logName est défini par défaut sur Application.

machineName
String

Nom de l'ordinateur avec lequel inscrire cette source d'événements ou "." pour l'ordinateur local.

Attributs

Exceptions

machineName n'est pas un nom d'ordinateur valide.

- ou -

source est une chaîne vide ("") ou a la valeur null.

- ou -

logName n'est pas un nom de journal des événements valide. Les noms de journal des événements doivent être composés de caractères imprimables et ne peuvent pas inclure les caractères « * », « ? » ou « \ ».

- ou -

logName n'est pas valide pour la création du journal d'utilisateur. Les noms des journaux d'événements AppEvent, SysEvent et SecEvent sont réservés au système.

- ou -

Le nom du journal correspond à un nom de source d'événements existant.

- ou -

Le nom de source fournit un chemin d'accès de clé de Registre dépassant 254 caractères.

- ou -

Les 8 premiers caractères de logName correspondent aux 8 premiers caractères d'un journal des événements existant nommé sur l'ordinateur spécifié.

- ou -

La source ne peut pas être inscrite, car elle existe déjà sur l'ordinateur spécifié.

- ou -

Le nom de la source correspond à un nom de source d'événements existant.

La clé de Registre du journal des événements n'a pas pu être ouverte sur l'ordinateur spécifié.

Exemples

L’exemple suivant crée la source MySource sur l’ordinateur MyServeret écrit une entrée dans le journal des événements MyNewLog.

#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   
   // Create the source, if it does not already exist.
   if (  !EventLog::SourceExists( "MySource", "MyServer" ) )
   {
      EventLog::CreateEventSource( "MySource", "MyNewLog", "MyServer" );
      Console::WriteLine( "CreatingEventSource" );
   }

   
   // Create an EventLog instance and assign its source.
   EventLog^ myLog = gcnew EventLog;
   myLog->Source = "MySource";
   
   // Write an informational entry to the event log.    
   myLog->WriteEntry( "Writing to event log." );
   Console::WriteLine( "Message written to event log." );
}
using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource", "MyServer"))
        {
            // An event log source should not be created and immediately used.
            // There is a latency time to enable the source, it should be created
            // prior to executing the application that uses the source.
            // Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer");
            Console.WriteLine("CreatingEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.
        myLog.WriteEntry("Writing to event log.");

        Console.WriteLine("Message written to event log.");
    }
}
Imports System.Diagnostics
Imports System.Threading

Class MySample
    Public Shared Sub Main()
        ' Create the source, if it does not already exist.
        If Not EventLog.SourceExists("MySource", "MyServer") Then
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer")
            Console.WriteLine("CreatingEventSource")
        End If
        
        ' Create an EventLog instance and assign its source.
        Dim myLog As New EventLog()
        myLog.Source = "MySource"
        
        ' Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.")
        
        Console.WriteLine("Message written to event log.")
    End Sub
End Class

Remarques

Utilisez cette surcharge pour créer un journal personnalisé ou pour créer et inscrire un Source dans un journal existant sur l’ordinateur spécifié.

Si logName est null ou une chaîne vide («  ») lorsque vous appelez CreateEventSource, le journal est défini par défaut sur le journal des applications. Si le journal n’existe pas sur l’ordinateur spécifié, le système crée un journal personnalisé et inscrit votre application en tant que Source pour ce journal.

Vous devez uniquement créer une source d’événements si vous écrivez dans le journal des événements. Avant d’écrire une entrée dans un journal des événements, vous devez inscrire la source des événements auprès du journal des événements en tant que source valide d’événements. Lorsque vous écrivez une entrée de journal, le système utilise pour Source trouver le journal approprié dans lequel placer votre entrée. Si vous lisez le journal des événements, vous pouvez spécifier , Sourceou un Log et MachineName.

Notes

Pour créer une source d’événement dans Windows Vista et versions ultérieures ou Windows Server 2003, vous devez disposer de privilèges d’administration.

La raison de cette exigence est que tous les journaux des événements, y compris la sécurité, doivent être recherchés pour déterminer si la source de l’événement est unique. Dans Windows Vista et versions ultérieures, les utilisateurs n’ont pas l’autorisation d’accéder au journal de sécurité ; par conséquent, un SecurityException est levée.

Dans Windows Vista et version ultérieure, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède au journal de sécurité, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.

Utilisez WriteEvent et WriteEntry pour écrire des événements dans un journal des événements. Vous devez spécifier une source d’événement pour écrire des événements ; vous devez créer et configurer la source d’événement avant d’écrire la première entrée avec la source.

Create la nouvelle source d’événement lors de l’installation de votre application. Cela laisse le temps au système d’exploitation d’actualiser sa liste des sources d’événements inscrites et leur configuration. Si le système d’exploitation n’a pas actualisé sa liste de sources d’événements et que vous tentez d’écrire un événement avec la nouvelle source, l’opération d’écriture échoue. Vous pouvez configurer une nouvelle source à l’aide d’une EventLogInstaller, ou à l’aide de la CreateEventSource méthode . Vous devez disposer de droits d’administration sur l’ordinateur pour créer une source d’événement.

Vous pouvez créer une source d’événements pour un journal des événements existant ou un nouveau journal des événements. Lorsque vous créez une source pour un nouveau journal des événements, le système inscrit la source pour ce journal, mais le journal n’est créé que lorsque la première entrée y est écrite.

Le système d’exploitation stocke les journaux des événements sous forme de fichiers. Lorsque vous utilisez EventLogInstaller ou CreateEventSource pour créer un journal des événements, le fichier associé est stocké dans le répertoire %SystemRoot%\System32\Config sur l’ordinateur spécifié. Le nom de fichier est défini en ajoutant les 8 premiers caractères de la propriété avec l’extension Log de nom de fichier .evt ».

La source doit être unique sur l’ordinateur local ; un nouveau nom de source ne peut pas correspondre à un nom de source existant ou à un nom de journal des événements existant. Chaque source ne peut écrire que dans un seul journal des événements à la fois ; Toutefois, votre application peut utiliser plusieurs sources pour écrire dans plusieurs journaux d’événements. Par exemple, votre application peut nécessiter plusieurs sources configurées pour différents journaux d’événements ou différents fichiers de ressources.

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 méthode pour écrire des entrées à l’aide WriteEvent d’identificateurs de ressource dans le journal des événements. Créez ensuite une autre source sans fichiers de ressources, puis utilisez cette source dans la WriteEntry méthode pour écrire des chaînes directement dans le journal des événements à l’aide de cette source.

Pour modifier les détails de configuration d’une source existante, vous devez supprimer la source, puis la créer avec la nouvelle configuration. Si d’autres applications ou composants utilisent la source existante, créez une source avec la configuration mise à jour au lieu de supprimer la source existante.

Notes

Si une source a déjà été mappée à un journal et que vous la remapncez dans un nouveau journal, vous devez redémarrer l’ordinateur pour que les modifications prennent effet.

Voir aussi

S’applique à