EventLog.CreateEventSource EventLog.CreateEventSource EventLog.CreateEventSource EventLog.CreateEventSource Method

Definizione

Stabilisce che un'applicazione è in grado di scrivere le informazioni relative agli eventi in un registro specifico del sistema.Establishes an application as able to write event information to a particular log on the system.

Overload

CreateEventSource(EventSourceCreationData) CreateEventSource(EventSourceCreationData) CreateEventSource(EventSourceCreationData) CreateEventSource(EventSourceCreationData)

Stabilisce una origine eventi valida per la scrittura di messaggi di evento localizzati, usando le proprietà di configurazione specificate per l'origine eventi e il registro eventi corrispondente.Establishes a valid event source for writing localized event messages, using the specified configuration properties for the event source and the corresponding event log.

CreateEventSource(String, String) CreateEventSource(String, String) CreateEventSource(String, String) CreateEventSource(String, String)

Determina che il nome di origine specificato è un nome di eventi valido per la scrittura di voci in un log del computer locale.Establishes the specified source name as a valid event source for writing entries to a log on the local computer. Questo metodo consente inoltre di creare un nuovo log personalizzato nel computer locale.This method can also create a new custom log on the local computer.

CreateEventSource(String, String, String) CreateEventSource(String, String, String) CreateEventSource(String, String, String) CreateEventSource(String, String, String)

Determina che il nome di origine specificato è un nome di eventi valido per la scrittura di voci in un log del computer specificato.Establishes the specified source name as a valid event source for writing entries to a log on the specified computer. Questo metodo può essere usato anche per creare un nuovo log personalizzato nel computer specificato.This method can also be used to create a new custom log on the specified computer.

CreateEventSource(EventSourceCreationData) CreateEventSource(EventSourceCreationData) CreateEventSource(EventSourceCreationData) CreateEventSource(EventSourceCreationData)

Stabilisce una origine eventi valida per la scrittura di messaggi di evento localizzati, usando le proprietà di configurazione specificate per l'origine eventi e il registro eventi corrispondente.Establishes a valid event source for writing localized event messages, using the specified configuration properties for the event source and the corresponding event log.

public:
 static void CreateEventSource(System::Diagnostics::EventSourceCreationData ^ sourceData);
[System.MonoNotSupported("remote machine is not supported")]
public static void CreateEventSource (System.Diagnostics.EventSourceCreationData sourceData);
static member CreateEventSource : System.Diagnostics.EventSourceCreationData -> unit
Public Shared Sub CreateEventSource (sourceData As EventSourceCreationData)

Parametri

sourceData
EventSourceCreationData EventSourceCreationData EventSourceCreationData EventSourceCreationData

Proprietà di configurazione per l'origine eventi e il registro eventi di destinazione.The configuration properties for the event source and its target event log.

Eccezioni

Il nome del computer specificato in sourceData non è valido.The computer name specified in sourceData is not valid.

-oppure--or- Il nome di origine file specificato in sourceData è null.The source name specified in sourceData is null.

-oppure--or- Il nome del log specificato in sourceData non è valido.The log name specified in sourceData is not valid. I nomi dei log eventi devono essere composti da caratteri stampabili e non possono contenere i caratteri "*", "?" o "\".Event log names must consist of printable characters and cannot include the characters '*', '?', or '\'.

In alternativa-or- Il nome del log specificato in sourceData non è valido per la creazione di log utente.The log name specified in sourceData is not valid for user log creation. I nomi del log eventi AppEvent, SysEvent e SecEvent sono di uso riservato da parte del sistema.The Event log names AppEvent, SysEvent, and SecEvent are reserved for system use.

-oppure--or- Il nome del log corrisponde a un nome di origine eventi esistente.The log name matches an existing event source name.

-oppure--or- A causa del nome origine specificato in sourceData il percorso di una chiave del Registro di sistema risulta più lungo di 254 caratteri.The source name specified in sourceData results in a registry key path longer than 254 characters.

-oppure--or- I primi 8 caratteri del nome del log specificato in sourceData non sono univoci.The first 8 characters of the log name specified in sourceData are not unique.

-oppure--or- Il nome origine specificato in sourceData è già registrato.The source name specified in sourceData is already registered.

-oppure--or- Il nome origine specificato in sourceData corrisponde a un nome di log eventi esistente.The source name specified in sourceData matches an existing event log name.

Non è possibile aprire la chiave del Registro di sistema per il log eventi.The registry key for the event log could not be opened.

Esempi

Nell'esempio seguente viene determinato se l'origine eventi SampleApplicationSource denominata è registrata nel computer locale.The following example determines whether the event source named SampleApplicationSource is registered on the local computer. Se l'origine evento non esiste, nell'esempio viene impostato il file di risorse del messaggio per l'origine e viene creata la nuova origine evento.If the event source does not exist, the example sets the message resource file for the source and creates the new event source. Infine, nell'esempio viene impostato il nome visualizzato localizzato per il registro eventi, utilizzando il valore dell' DisplayNameMsgId identificatore di risorsa in e il messageFilepercorso del file di risorse in.Finally, the example sets the localized display name for the event log, using the resource identifier value in DisplayNameMsgId and the resource file path in 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

Nell'esempio viene usato il file di testo del messaggio seguente, integrato nella libreria di risorse EventLogMsgs. dll.The example uses the following message text file, built into the resource library EventLogMsgs.dll. Un file di testo del messaggio è l'origine da cui viene creato il file di risorse del messaggio.A message text file is the source from which the message resource file is created. Il file di testo del messaggio definisce gli identificatori e il testo delle risorse per la categoria, il messaggio di evento e le stringhe di inserimento dei parametri.The message text file defines the resource identifiers and text for the category, event message, and parameter insertion strings. In particolare, viene definito l'identificatore di risorsa 5001 per il nome localizzato del log eventi.Specifically, resource identifier 5001 is defined for the localized name of the event log.

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

Commenti

Utilizzare questo overload per configurare una nuova origine per la scrittura di voci in un registro eventi nel computer locale o in un computer remoto.Use this overload to configure a new source for writing entries to an event log on the local computer or a remote computer. Non è necessario utilizzare questo metodo per leggere da un log eventi.It is not necessary to use this method to read from an event log.

Il CreateEventSource metodo usa le proprietà sourceData Sourcedi LogName input eMachineName per creare i valori del registro di sistema nel computer di destinazione per la nuova origine e il registro eventi associato.The CreateEventSource method uses the input sourceDataSource, LogName and MachineName properties to create registry values on the target computer for the new source and its associated event log. Un nuovo nome di origine non può corrispondere a un nome di origine esistente o a un nome di registro eventi esistente nel computer di destinazione.A new source name cannot match an existing source name or an existing event log name on the target computer. Se la LogName proprietà non è impostata, l'origine viene registrata per il registro eventi dell'applicazione.If the LogName property is not set, the source is registered for the Application event log. Se non MachineName è impostato, l'origine viene registrata nel computer locale.If the MachineName is not set, the source is registered on the local computer.

Nota

Per creare un'origine evento in Windows Vista e versioni successive o Windows Server 2003, è necessario disporre dei privilegi amministrativi.To create an event source in Windows Vista and later or Windows Server 2003, you must have administrative privileges.

Il motivo di questo requisito è che è necessario cercare tutti i registri eventi, inclusa la sicurezza, per determinare se l'origine evento è univoca.The reason for this requirement is that all event logs, including security, must be searched to determine whether the event source is unique. A partire da Windows Vista, gli utenti non dispongono delle autorizzazioni per accedere al registro di sicurezza. viene pertanto generata SecurityException un'eccezione.Starting with Windows Vista, users do not have permission to access the security log; therefore, a SecurityException is thrown.

A partire da Windows Vista, il controllo dell'account utente (UAC) determina i privilegi di un utente.Starting with Windows Vista, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede al registro di sicurezza, è prima di tutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses the security log, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Usare WriteEvent eWriteEntry per scrivere eventi in un log eventi.Use WriteEvent and WriteEntry to write events to an event log. È necessario specificare un'origine evento per la scrittura di eventi; è necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must specify an event source to write events; you must create and configure the event source before writing the first entry with the source.

Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. Se il sistema operativo non ha aggiornato l'elenco delle origini eventi e si tenta di scrivere un evento con la nuova origine, l'operazione di scrittura avrà esito negativo.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

È possibile creare un'origine evento per un registro eventi esistente o per un nuovo registro eventi.You can create an event source for an existing event log or a new event log. Quando si crea una nuova origine per un nuovo registro eventi, il sistema registra l'origine per tale log, ma il log non viene creato fino a quando non viene scritta la prima voce.When you create a new source for a new event log, the system registers the source for that log, but the log is not created until the first entry is written to it.

Il sistema operativo archivia i registri eventi come file.The operating system stores event logs as files. Quando si usa EventLogInstaller o CreateEventSource per creare un nuovo registro eventi, il file associato viene archiviato nella directory%SystemRoot%\System32\Config del computer specificato.When you use EventLogInstaller or CreateEventSource to create a new event log, the associated file is stored in the %SystemRoot%\System32\Config directory on the specified computer. Il nome del file viene impostato aggiungendo i primi 8 caratteri della Log proprietà con l'estensione del nome di file ". evt".The file name is set by appending the first 8 characters of the Log property with the ".evt" file name extension.

Ogni origine può scrivere solo in un log eventi alla volta. Tuttavia, l'applicazione può usare più origini per scrivere in più registri eventi.Each source can only write to only one event log at a time; however, your application can use multiple sources to write to multiple event logs. Ad esempio, l'applicazione potrebbe richiedere più origini configurate per i diversi registri eventi o file di risorse diversi.For example, your application might require multiple sources configured for different event logs or different resource files.

È possibile registrare l'origine evento con i file di risorse localizzati per la categoria di eventi e le stringhe di messaggio.You can register the event source with localized resource file(s) for your event category and message strings. L'applicazione può scrivere voci del registro eventi usando gli identificatori di risorsa, anziché specificare la stringa effettiva.Your application can write event log entries using resource identifiers, rather than specifying the actual string. Il Visualizzatore eventi usa l'identificatore di risorsa per trovare e visualizzare la stringa corrispondente dal file di risorse localizzato in base alle impostazioni della lingua corrente.The Event Viewer uses the resource identifier to find and display the corresponding string from the localized resource file based on current language settings. È possibile registrare un file separato per le categorie di eventi, i messaggi e le stringhe di inserimento dei parametri oppure è possibile registrare lo stesso file di risorse per tutti e tre i tipi di stringhe.You can register a separate file for event categories, messages and parameter insertion strings, or you can register the same resource file for all three types of strings. Utilizzare le CategoryCountproprietà CategoryResourceFile, MessageResourceFile, eParameterResourceFile per configurare l'origine per la scrittura di voci localizzate nel registro eventi.Use the CategoryCount, CategoryResourceFile, MessageResourceFile, and ParameterResourceFile properties to configure the source to write localized entries to the event log. Se l'applicazione scrive valori di stringhe direttamente nel registro eventi, non è necessario impostare queste proprietà.If your application writes strings values directly to the event log, you do not need to set these properties.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Per modificare i dettagli di configurazione di un'origine esistente, è necessario eliminare l'origine e quindi crearla con la nuova configurazione.To change the configuration details of an existing source, you must delete the source and then create it with the new configuration. Se altre applicazioni o componenti usano l'origine esistente, creare una nuova origine con la configurazione aggiornata anziché eliminare l'origine esistente.If other applications or components use the existing source, create a new source with the updated configuration rather than deleting the existing source.

Nota

Se un'origine è configurata per un log eventi e viene riconfigurata per un altro registro eventi, è necessario riavviare il computer per rendere effettive le modifiche.If a source is configured for an event log, and you reconfigure it for another event log, you must restart the computer for the changes to take effect.

Sicurezza

EventLogPermission
per l'amministrazione delle informazioni del registro eventi nel computer.for administering event log information on the computer. Enumerazione associata:AdministerAssociated enumeration: Administer

Vedi anche

CreateEventSource(String, String) CreateEventSource(String, String) CreateEventSource(String, String) CreateEventSource(String, String)

Determina che il nome di origine specificato è un nome di eventi valido per la scrittura di voci in un log del computer locale.Establishes the specified source name as a valid event source for writing entries to a log on the local computer. Questo metodo consente inoltre di creare un nuovo log personalizzato nel computer locale.This method can also create a new custom log on the local computer.

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)

Parametri

source
String String String String

Nome dell'origine con cui l'applicazione è registrata nel computer locale.The source name by which the application is registered on the local computer.

logName
String String String String

Nome del log in cui le voci dell'origine vengono scritte.The name of the log the source's entries are written to. I valori possibili sono Applicazione, Sistema o un registro eventi personalizzato.Possible values include Application, System, or a custom event log.

Eccezioni

source è una stringa ("") o null.source is an empty string ("") or null.

In alternativa-or- logName non è un nome di log eventi valido.logName is not a valid event log name. I nomi dei log eventi devono essere composti da caratteri stampabili e non possono contenere i caratteri "*", "?" o "\".Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'.

-oppure--or- logName non è valido per la creazione di log utente.logName is not valid for user log creation. L'utilizzo dei nomi dei log eventi AppEvent, SysEvent e SecEvent è riservato al sistema.The event log names AppEvent, SysEvent, and SecEvent are reserved for system use.

-oppure--or- Il nome del log corrisponde a un nome di origine eventi esistente.The log name matches an existing event source name.

In alternativa-or- A causa del nome origine una chiave del Registro di sistema risulta più lunga di 254 caratteri.The source name results in a registry key path longer than 254 characters.

In alternativa-or- I primi 8 caratteri di logName corrispondono ai primi 8 caratteri di un nome di log eventi esistente.The first 8 characters of logName match the first 8 characters of an existing event log name.

In alternativa-or- Non è possibile registrare l'origine poiché esiste già nel computer locale.The source cannot be registered because it already exists on the local computer.

In alternativa-or- Il nome origine corrisponde a un nome di log eventi esistente.The source name matches an existing event log name.

Non è possibile aprire la chiave del Registro di sistema per il log eventi sul computer locale.The registry key for the event log could not be opened on the local computer.

Esempi

Nell'esempio seguente viene creata l' MySource origine, se non esiste già, e viene scritta una voce nel log MyNewLogeventi.The following example creates the source MySource if it does not already exist, and writes an entry to the event log 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" ) )
   {
      //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 'MySample

Commenti

Utilizzare questo overload per creare un log personalizzato o per creare e registrare un Source in un log esistente nel computer locale.Use this overload to create a custom log or to create and register a Source to an existing log on the local computer.

Se logName è null o una stringa vuota ("") quando si chiama CreateEventSource, l'impostazione predefinita del log è il registro applicazioni.If logName is null or an empty string ("") when you call CreateEventSource, the log defaults to the Application log. Se il log non esiste nel computer locale, il sistema crea un log personalizzato e registra l'applicazione come Source per il log.If the log does not exist on the local computer, the system creates a custom log and registers your application as a Source for that log.

Nota

Per creare un'origine evento in Windows Vista e versioni successive o Windows Server 2003, è necessario disporre dei privilegi amministrativi.To create an event source in Windows Vista and later or Windows Server 2003, you must have administrative privileges.

Il motivo di questo requisito è che è necessario cercare tutti i registri eventi, inclusa la sicurezza, per determinare se l'origine evento è univoca.The reason for this requirement is that all event logs, including security, must be searched to determine whether the event source is unique. A partire da Windows Vista, gli utenti non dispongono delle autorizzazioni per accedere al registro di sicurezza. viene pertanto generata SecurityException un'eccezione.Starting with Windows Vista, users do not have permission to access the security log; therefore, a SecurityException is thrown.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede al registro di sicurezza, è prima di tutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses the security log, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

È sufficiente creare un'origine evento se si sta scrivendo nel registro eventi.You only need to create an event source if you are writing to the event log. Prima di scrivere una voce in un registro eventi, è necessario registrare l'origine eventi con il registro eventi come origine valida degli eventi.Before writing an entry to an event log, you must register the event source with the event log as a valid source of events. Quando si scrive una voce Source di log, il sistema utilizza per individuare il log appropriato in cui inserire la voce.When you write a log entry, the system uses the Source to find the appropriate log in which to place your entry. Se si sta leggendo il registro eventi, è possibile specificare Source Log o MachineName.If you are reading the event log, you can either specify the Source, or a Log and MachineName.

Nota

MachineName Se ci si connette a un log nel computer locale, non è necessario specificare.You are not required to specify the MachineName if you are connecting to a log on the local computer. Se non si specifica l'oggetto MachineName durante la lettura da un log, viene utilizzato il computer locale (".").If you do not specify the MachineName when reading from a log, the local computer (".") is assumed.

Usare WriteEvent eWriteEntry per scrivere eventi in un log eventi.Use WriteEvent and WriteEntry to write events to an event log. È necessario specificare un'origine evento per la scrittura di eventi; è necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must specify an event source to write events; you must create and configure the event source before writing the first entry with the source.

Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. Se il sistema operativo non ha aggiornato l'elenco delle origini eventi e si tenta di scrivere un evento con la nuova origine, l'operazione di scrittura avrà esito negativo.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

È possibile creare un'origine evento per un registro eventi esistente o per un nuovo registro eventi.You can create an event source for an existing event log or a new event log. Quando si crea una nuova origine per un nuovo registro eventi, il sistema registra l'origine per tale log, ma il log non viene creato fino a quando non viene scritta la prima voce.When you create a new source for a new event log, the system registers the source for that log, but the log is not created until the first entry is written to it.

Il sistema operativo archivia i registri eventi come file.The operating system stores event logs as files. Quando si usa EventLogInstaller o CreateEventSource per creare un nuovo registro eventi, il file associato viene archiviato nella directory%SystemRoot%\System32\Config del computer specificato.When you use EventLogInstaller or CreateEventSource to create a new event log, the associated file is stored in the %SystemRoot%\System32\Config directory on the specified computer. Il nome del file viene impostato aggiungendo i primi 8 caratteri della Log proprietà con l'estensione del nome di file ". evt".The file name is set by appending the first 8 characters of the Log property with the ".evt" file name extension.

L'origine deve essere univoca nel computer locale. un nuovo nome di origine non può corrispondere a un nome di origine esistente o a un nome di registro eventi esistente.The source must be unique on the local computer; a new source name cannot match an existing source name or an existing event log name. Ogni origine può scrivere in un solo log eventi alla volta. Tuttavia, l'applicazione può usare più origini per scrivere in più registri eventi.Each source can write to only one event log at a time; however, your application can use multiple sources to write to multiple event logs. Ad esempio, l'applicazione potrebbe richiedere più origini configurate per i diversi registri eventi o file di risorse diversi.For example, your application might require multiple sources configured for different event logs or different resource files.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Per modificare i dettagli di configurazione di un'origine esistente, è necessario eliminare l'origine e quindi crearla con la nuova configurazione.To change the configuration details of an existing source, you must delete the source and then create it with the new configuration. Se altre applicazioni o componenti usano l'origine esistente, creare una nuova origine con la configurazione aggiornata anziché eliminare l'origine esistente.If other applications or components use the existing source, create a new source with the updated configuration rather than deleting the existing source.

Nota

Se è già stato eseguito il mapping di un'origine a un log e si esegue il mapping a un nuovo log, è necessario riavviare il computer per rendere effettive le modifiche.If a source has already been mapped to a log and you remap it to a new log, you must restart the computer for the changes to take effect.

Sicurezza

EventLogPermission
per l'amministrazione delle informazioni del registro eventi nel computer.for administering event log information on the computer. Enumerazione associata:AdministerAssociated enumeration: Administer

Vedi anche

CreateEventSource(String, String, String) CreateEventSource(String, String, String) CreateEventSource(String, String, String) CreateEventSource(String, String, String)

Avviso

Questa API è ora obsoleta.

Determina che il nome di origine specificato è un nome di eventi valido per la scrittura di voci in un log del computer specificato.Establishes the specified source name as a valid event source for writing entries to a log on the specified computer. Questo metodo può essere usato anche per creare un nuovo log personalizzato nel computer specificato.This method can also be used to create a new custom log on the specified computer.

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

Parametri

source
String String String String

Origine con cui l'applicazione è registrata nel computer specificato.The source by which the application is registered on the specified computer.

logName
String String String String

Nome del log in cui le voci dell'origine vengono scritte.The name of the log the source's entries are written to. I valori possibili sono Applicazione, Sistema o un registro eventi personalizzato.Possible values include Application, System, or a custom event log. Se non si specifica alcun valore, il parametro, logName userà il log predefinito Applicazione.If you do not specify a value, logName defaults to Application.

machineName
String String String String

Nome del computer con cui registrare l'origine evento oppure "." per il computer locale.The name of the computer to register this event source with, or "." for the local computer.

Eccezioni

machineName non è un nome del computer valido.The machineName is not a valid computer name.

In alternativa-or- source è una stringa ("") o null.source is an empty string ("") or null.

-oppure--or- logName non è un nome di log eventi valido.logName is not a valid event log name. I nomi dei log eventi devono essere composti da caratteri stampabili e non possono contenere i caratteri "*", "?" o "\".Event log names must consist of printable characters, and cannot include the characters '*', '?', or '\'.

-oppure--or- logName non è valido per la creazione di log utente.logName is not valid for user log creation. L'utilizzo dei nomi dei log eventi AppEvent, SysEvent e SecEvent è riservato al sistema.The event log names AppEvent, SysEvent, and SecEvent are reserved for system use.

In alternativa-or- Il nome del log corrisponde a un nome di origine eventi esistente.The log name matches an existing event source name.

In alternativa-or- A causa del nome origine una chiave del Registro di sistema risulta più lunga di 254 caratteri.The source name results in a registry key path longer than 254 characters.

-oppure--or- I primi 8 caratteri di logName corrispondono ai primi 8 caratteri di un nome di log eventi esistente.The first 8 characters of logName match the first 8 characters of an existing event log name on the specified computer.

In alternativa-or- Non è possibile registrare l'origine poiché esiste già nel computer specificato.The source cannot be registered because it already exists on the specified computer.

-oppure--or- Il nome dell'origine corrisponde a un nome di origine eventi esistente.The source name matches an existing event source name.

Non è possibile aprire la chiave del Registro di sistema per il log eventi sul computer specificato.The registry key for the event log could not be opened on the specified computer.

Esempi

Nell'esempio seguente viene creata l' MySource origine nel computer MyServere viene scritta una voce nel log MyNewLogeventi.The following example creates the source MySource on the computer MyServer, and writes an entry to the event log 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 ' MySample

Commenti

Utilizzare questo overload per creare un log personalizzato o per creare e registrare un Source in un log esistente nel computer specificato.Use this overload to create a custom log or to create and register a Source to an existing log on the specified computer.

Se logName è null o una stringa vuota ("") quando si chiama CreateEventSource, l'impostazione predefinita del log è il registro applicazioni.If logName is null or an empty string ("") when you call CreateEventSource, the log defaults to the Application log. Se il log non esiste nel computer specificato, il sistema crea un log personalizzato e registra l'applicazione come Source per tale log.If the log does not exist on the specified computer, the system creates a custom log and registers your application as a Source for that log.

È sufficiente creare un'origine evento se si sta scrivendo nel registro eventi.You only need to create an event source if you are writing to the event log. Prima di scrivere una voce in un registro eventi, è necessario registrare l'origine eventi con il registro eventi come origine valida degli eventi.Before writing an entry to an event log, you must register the event source with the event log as a valid source of events. Quando si scrive una voce Source di log, il sistema utilizza per individuare il log appropriato in cui inserire la voce.When you write a log entry, the system uses the Source to find the appropriate log in which to place your entry. Se si sta leggendo il registro eventi, è possibile specificare Source Log o MachineName.If you are reading the event log, you can either specify the Source, or a Log and MachineName.

Nota

Per creare un'origine evento in Windows Vista e versioni successive o Windows Server 2003, è necessario disporre dei privilegi amministrativi.To create an event source in Windows Vista and later or Windows Server 2003, you must have administrative privileges.

Il motivo di questo requisito è che è necessario cercare tutti i registri eventi, inclusa la sicurezza, per determinare se l'origine evento è univoca.The reason for this requirement is that all event logs, including security, must be searched to determine whether the event source is unique. In Windows Vista e versioni successive, gli utenti non dispongono delle autorizzazioni per accedere al registro di sicurezza. viene pertanto generata SecurityException un'eccezione.In Windows Vista and later, users do not have permission to access the security log; therefore, a SecurityException is thrown.

In Windows Vista e versioni successive i privilegi di un utente sono determinati dalla funzionalità Controllo dell'account utente.In Windows Vista and later, User Account Control (UAC) determines the privileges of a user. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard.By default, you are in the standard user role. Per eseguire il codice che accede al registro di sicurezza, è prima di tutto necessario elevare i privilegi da utente standard a amministratore.To execute the code that accesses the security log, you must first elevate your privileges from standard user to administrator. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Usare WriteEvent eWriteEntry per scrivere eventi in un log eventi.Use WriteEvent and WriteEntry to write events to an event log. È necessario specificare un'origine evento per la scrittura di eventi; è necessario creare e configurare l'origine evento prima di scrivere la prima voce con l'origine.You must specify an event source to write events; you must create and configure the event source before writing the first entry with the source.

Creare la nuova origine evento durante l'installazione dell'applicazione.Create the new event source during the installation of your application. Ciò consente al sistema operativo di aggiornare l'elenco delle origini eventi registrate e la relativa configurazione.This allows time for the operating system to refresh its list of registered event sources and their configuration. Se il sistema operativo non ha aggiornato l'elenco delle origini eventi e si tenta di scrivere un evento con la nuova origine, l'operazione di scrittura avrà esito negativo.If the operating system has not refreshed its list of event sources, and you attempt to write an event with the new source, the write operation will fail. È possibile configurare una nuova origine usando EventLogInstallero il CreateEventSource metodo.You can configure a new source using an EventLogInstaller, or using the CreateEventSource method. Per creare una nuova origine evento, è necessario disporre dei diritti amministrativi nel computer.You must have administrative rights on the computer to create a new event source.

È possibile creare un'origine evento per un registro eventi esistente o per un nuovo registro eventi.You can create an event source for an existing event log or a new event log. Quando si crea una nuova origine per un nuovo registro eventi, il sistema registra l'origine per tale log, ma il log non viene creato fino a quando non viene scritta la prima voce.When you create a new source for a new event log, the system registers the source for that log, but the log is not created until the first entry is written to it.

Il sistema operativo archivia i registri eventi come file.The operating system stores event logs as files. Quando si usa EventLogInstaller o CreateEventSource per creare un nuovo registro eventi, il file associato viene archiviato nella directory%SystemRoot%\System32\Config del computer specificato.When you use EventLogInstaller or CreateEventSource to create a new event log, the associated file is stored in the %SystemRoot%\System32\Config directory on the specified computer. Il nome del file viene impostato aggiungendo i primi 8 caratteri della Log proprietà con l'estensione del nome di file ". evt".The file name is set by appending the first 8 characters of the Log property with the ".evt" file name extension.

L'origine deve essere univoca nel computer locale. un nuovo nome di origine non può corrispondere a un nome di origine esistente o a un nome di registro eventi esistente.The source must be unique on the local computer; a new source name cannot match an existing source name or an existing event log name. Ogni origine può scrivere in un solo log eventi alla volta. Tuttavia, l'applicazione può usare più origini per scrivere in più registri eventi.Each source can write to only one event log at a time; however, your application can use multiple sources to write to multiple event logs. Ad esempio, l'applicazione potrebbe richiedere più origini configurate per i diversi registri eventi o file di risorse diversi.For example, your application might require multiple sources configured for different event logs or different resource files.

L'origine deve essere configurata per la scrittura di voci localizzate o per la scrittura di stringhe dirette.The source must be configured either for writing localized entries or for writing direct strings. Se l'applicazione scrive voci usando sia gli identificatori di risorsa che i valori di stringa, è necessario registrare due origini separate.If your application writes entries using both resource identifiers and string values, you must register two separate sources. Ad esempio, configurare un'origine con i file di risorse e quindi usare tale origine nel WriteEvent metodo per scrivere le voci usando gli identificatori di risorsa nel registro eventi.For example, configure one source with resource files, and then use that source in the WriteEvent method to write entries using resource identifiers to the event log. Creare quindi un'origine diversa senza file di risorse e usare tale origine nel WriteEntry metodo per scrivere le stringhe direttamente nel registro eventi usando tale origine.Then create a different source without resource files, and use that source in the WriteEntry method to write strings directly to the event log using that source.

Per modificare i dettagli di configurazione di un'origine esistente, è necessario eliminare l'origine e quindi crearla con la nuova configurazione.To change the configuration details of an existing source, you must delete the source and then create it with the new configuration. Se altre applicazioni o componenti usano l'origine esistente, creare una nuova origine con la configurazione aggiornata anziché eliminare l'origine esistente.If other applications or components use the existing source, create a new source with the updated configuration rather than deleting the existing source.

Nota

Se è già stato eseguito il mapping di un'origine a un log e si esegue il mapping a un nuovo log, è necessario riavviare il computer per rendere effettive le modifiche.If a source has already been mapped to a log and you remap it to a new log, you must restart the computer for the changes to take effect.

Sicurezza

EventLogPermission
per l'amministrazione delle informazioni del registro eventi nel computer.for administering event log information on the computer. Enumerazione associata:AdministerAssociated enumeration: Administer

Vedi anche

Si applica a