EventLog.CreateEventSource Methode

Definitie

Hiermee stelt u een toepassing in staat om gebeurtenisgegevens naar een bepaald logboek op het systeem te schrijven.

Overloads

Name Description
CreateEventSource(EventSourceCreationData)

Hiermee maakt u een geldige gebeurtenisbron voor het schrijven van gelokaliseerde gebeurtenisberichten met behulp van de opgegeven configuratie-eigenschappen voor de gebeurtenisbron en het bijbehorende gebeurtenislogboek.

CreateEventSource(String, String)

Hiermee wordt de opgegeven bronnaam ingesteld als een geldige gebeurtenisbron voor het schrijven van vermeldingen naar een logboek op de lokale computer. Met deze methode kunt u ook een nieuw aangepast logboek maken op de lokale computer.

CreateEventSource(String, String, String)
Verouderd.

Hiermee wordt de opgegeven bronnaam ingesteld als een geldige gebeurtenisbron voor het schrijven van vermeldingen naar een logboek op de opgegeven computer. Deze methode kan ook worden gebruikt voor het maken van een nieuw aangepast logboek op de opgegeven computer.

CreateEventSource(EventSourceCreationData)

Hiermee maakt u een geldige gebeurtenisbron voor het schrijven van gelokaliseerde gebeurtenisberichten met behulp van de opgegeven configuratie-eigenschappen voor de gebeurtenisbron en het bijbehorende gebeurtenislogboek.

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)

Parameters

sourceData
EventSourceCreationData

De configuratie-eigenschappen voor de gebeurtenisbron en het doellogboek van de gebeurtenis.

Uitzonderingen

De opgegeven sourceData computernaam is ongeldig.

– of –

De opgegeven sourceData bronnaam is null.

– of –

De opgegeven sourceData logboeknaam is ongeldig. Namen van gebeurtenislogboeken moeten bestaan uit afdrukbare tekens en mogen de tekens *, ?of \niet bevatten.

– of –

De opgegeven sourceData logboeknaam is niet geldig voor het maken van gebruikerslogboeken. De gebeurtenislogboeknamen AppEvent, SysEvent en SecEvent zijn gereserveerd voor systeemgebruik.

– of –

De logboeknaam komt overeen met de naam van een bestaande gebeurtenisbron.

– of –

De bronnaam die is opgegeven in sourceData resultaten in een registersleutelpad dat langer is dan 254 tekens.

– of –

De eerste acht tekens van de opgegeven sourceData logboeknaam zijn niet uniek.

– of –

De opgegeven sourceData bronnaam is al geregistreerd.

– of –

De bronnaam die is opgegeven in sourceData komt overeen met een bestaande naam van het gebeurtenislogboek.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend.

sourceData is null.

Voorbeelden

In het volgende voorbeeld wordt bepaald of de benoemde SampleApplicationSource gebeurtenisbron is geregistreerd op de lokale computer. Als de gebeurtenisbron niet bestaat, wordt in het voorbeeld het bronbestand van het bericht voor de bron ingesteld en wordt de nieuwe gebeurtenisbron gemaakt. Ten slotte wordt in het voorbeeld de gelokaliseerde weergavenaam voor het gebeurtenislogboek ingesteld met behulp van de waarde van de resource-id en DisplayNameMsgId het pad naar het resourcebestand in messageFile.

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

In het voorbeeld wordt het volgende berichttekstbestand gebruikt dat is ingebouwd in de resourcebibliotheek EventLogMsgs.dll. Een berichttekstbestand is de bron van waaruit het bronbestand van het bericht wordt gemaakt. Het berichttekstbestand definieert de resource-id's en tekst voor de categorie, gebeurtenisbericht en parameterinvoegreeksen. Resource-id 5001 wordt specifiek gedefinieerd voor de gelokaliseerde naam van het gebeurtenislogboek.

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

Opmerkingen

Gebruik deze overbelasting om een nieuwe bron te configureren voor het schrijven van vermeldingen naar een gebeurtenislogboek op de lokale computer of een externe computer. Het is niet nodig om deze methode te gebruiken om te lezen uit een gebeurtenislogboek.

De CreateEventSource methode gebruikt de invoer sourceDataSourceLogName en MachineName eigenschappen om registerwaarden te maken op de doelcomputer voor de nieuwe bron en het bijbehorende gebeurtenislogboek. Een nieuwe bronnaam kan niet overeenkomen met een bestaande bronnaam of een bestaande naam van het gebeurtenislogboek op de doelcomputer. Als de LogName eigenschap niet is ingesteld, wordt de bron geregistreerd voor het gebeurtenislogboek van de toepassing. Als de MachineName bron niet is ingesteld, wordt de bron geregistreerd op de lokale computer.

Note

Als u een gebeurtenisbron wilt maken in Windows Vista en hoger of Windows Server 2003, moet u beheerdersbevoegdheden hebben.

De reden hiervoor is dat alle gebeurtenislogboeken, inclusief beveiliging, moeten worden doorzocht om te bepalen of de gebeurtenisbron uniek is. Vanaf Windows Vista hebben gebruikers geen toegang tot het beveiligingslogboek. Daarom wordt er een SecurityException gegenereerd.

Vanaf Windows Vista bepaalt UAC (User Account Control) de bevoegdheden van een gebruiker. Als u lid bent van de groep Ingebouwde beheerders, hebt u twee runtime-toegangstokens toegewezen: een standaard toegangstoken voor gebruikers en een beheerderstoegangstoken. Standaard hebt u de standaardgebruikersrol. Als u de code wilt uitvoeren die toegang heeft tot het beveiligingslogboek, moet u eerst uw bevoegdheden verhogen van de standaardgebruiker naar de beheerder. U kunt dit doen wanneer u een toepassing start door met de rechtermuisknop op het toepassingspictogram te klikken en aan te geven dat u wilt uitvoeren als beheerder.

Gebruik WriteEvent en WriteEntry schrijf gebeurtenissen naar een gebeurtenislogboek. U moet een gebeurtenisbron opgeven om gebeurtenissen te schrijven; u moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft.

Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

U kunt een gebeurtenisbron maken voor een bestaand gebeurtenislogboek of een nieuw gebeurtenislogboek. Wanneer u een nieuwe bron voor een nieuw gebeurtenislogboek maakt, registreert het systeem de bron voor dat logboek, maar wordt het logboek pas gemaakt nadat de eerste vermelding ernaar is geschreven.

In het besturingssysteem worden gebeurtenislogboeken opgeslagen als bestanden. Wanneer u een nieuw gebeurtenislogboek gebruikt EventLogInstaller of CreateEventSource maakt, wordt het bijbehorende bestand opgeslagen in de %SystemRoot%map \System32\Config op de opgegeven computer. De bestandsnaam wordt ingesteld door de eerste 8 tekens van de Log eigenschap toe te voegen met de bestandsnaamextensie .evt.

Elke bron kan slechts naar één gebeurtenislogboek tegelijk schrijven; Uw toepassing kan echter meerdere bronnen gebruiken om naar meerdere gebeurtenislogboeken te schrijven. Uw toepassing kan bijvoorbeeld meerdere bronnen vereisen die zijn geconfigureerd voor verschillende gebeurtenislogboeken of verschillende resourcebestanden.

U kunt de gebeurtenisbron registreren bij gelokaliseerde resourcebestanden voor uw gebeurteniscategorie en berichttekenreeksen. Uw toepassing kan vermeldingen in het gebeurtenislogboek schrijven met behulp van resource-id's, in plaats van de werkelijke tekenreeks op te geven. De Logboeken gebruikt de resource-id om de bijbehorende tekenreeks uit het gelokaliseerde resourcebestand te zoeken en weer te geven op basis van de huidige taalinstellingen. U kunt een afzonderlijk bestand registreren voor gebeurteniscategorieën, berichten en parameterinvoegreeksen of u kunt hetzelfde resourcebestand registreren voor alle drie de typen tekenreeksen. Gebruik de CategoryCounteigenschappen , CategoryResourceFileen MessageResourceFileParameterResourceFile eigenschappen om de bron te configureren voor het schrijven van gelokaliseerde vermeldingen in het gebeurtenislogboek. Als uw toepassing tekenreekswaarden rechtstreeks naar het gebeurtenislogboek schrijft, hoeft u deze eigenschappen niet in te stellen.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Als u de configuratiedetails van een bestaande bron wilt wijzigen, moet u de bron verwijderen en deze vervolgens maken met de nieuwe configuratie. Als andere toepassingen of onderdelen de bestaande bron gebruiken, maakt u een nieuwe bron met de bijgewerkte configuratie in plaats van de bestaande bron te verwijderen.

Note

Als een bron is geconfigureerd voor een gebeurtenislogboek en u het opnieuw configureert voor een ander gebeurtenislogboek, moet u de computer opnieuw opstarten om de wijzigingen van kracht te laten worden.

Zie ook

Van toepassing op

CreateEventSource(String, String)

Hiermee wordt de opgegeven bronnaam ingesteld als een geldige gebeurtenisbron voor het schrijven van vermeldingen naar een logboek op de lokale computer. Met deze methode kunt u ook een nieuw aangepast logboek maken op de lokale 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)

Parameters

source
String

De bronnaam waarmee de toepassing is geregistreerd op de lokale computer.

logName
String

De naam van het logboek waarnaar de vermeldingen van de bron worden geschreven. Mogelijke waarden zijn toepassing, systeem of een aangepast gebeurtenislogboek.

Uitzonderingen

source is een lege tekenreeks ("") of null.

– of –

logName is geen geldige naam van het gebeurtenislogboek. Namen van gebeurtenislogboeken moeten bestaan uit afdrukbare tekens en mogen de tekens *, ?of \niet bevatten.

– of –

logName is niet geldig voor het maken van gebruikerslogboeken. De gebeurtenislogboeknamen AppEvent, SysEvent en SecEvent zijn gereserveerd voor systeemgebruik.

– of –

De logboeknaam komt overeen met de naam van een bestaande gebeurtenisbron.

– of –

De bronnaam resulteert in een registersleutelpad dat langer is dan 254 tekens.

– of –

De eerste 8 tekens komen logName overeen met de eerste acht tekens van een bestaande gebeurtenislogboeknaam.

– of –

De bron kan niet worden geregistreerd omdat deze al bestaat op de lokale computer.

– of –

De bronnaam komt overeen met een bestaande gebeurtenislogboeknaam.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend op de lokale computer.

Voorbeelden

In het volgende voorbeeld wordt de bron MySource gemaakt als deze nog niet bestaat en schrijft een vermelding naar het gebeurtenislogboek MyNewLog.

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

Opmerkingen

Gebruik deze overbelasting om een aangepast logboek te maken of om een Source bestaand logboek op de lokale computer te maken en te registreren.

Als logName dit een lege tekenreeks ("") is null wanneer u aanroept CreateEventSource, wordt het logboek standaard ingesteld op het toepassingslogboek. Als het logboek niet bestaat op de lokale computer, maakt het systeem een aangepast logboek en registreert uw toepassing als een Source voor dat logboek.

Note

Als u een gebeurtenisbron wilt maken in Windows Vista en hoger of Windows Server 2003, moet u beheerdersbevoegdheden hebben.

De reden hiervoor is dat alle gebeurtenislogboeken, inclusief beveiliging, moeten worden doorzocht om te bepalen of de gebeurtenisbron uniek is. Vanaf Windows Vista hebben gebruikers geen toegang tot het beveiligingslogboek. Daarom wordt er een SecurityException gegenereerd.

In Windows Vista en hoger bepaalt UAC (User Account Control) de bevoegdheden van een gebruiker. Als u lid bent van de groep Ingebouwde beheerders, hebt u twee runtime-toegangstokens toegewezen: een standaard toegangstoken voor gebruikers en een beheerderstoegangstoken. Standaard hebt u de standaardgebruikersrol. Als u de code wilt uitvoeren die toegang heeft tot het beveiligingslogboek, moet u eerst uw bevoegdheden verhogen van de standaardgebruiker naar de beheerder. U kunt dit doen wanneer u een toepassing start door met de rechtermuisknop op het toepassingspictogram te klikken en aan te geven dat u wilt uitvoeren als beheerder.

U hoeft alleen een gebeurtenisbron te maken als u naar het gebeurtenislogboek schrijft. Voordat u een vermelding in een gebeurtenislogboek schrijft, moet u de gebeurtenisbron registreren bij het gebeurtenislogboek als een geldige bron van gebeurtenissen. Wanneer u een logboekvermelding schrijft, wordt het systeem gebruikt Source om het juiste logboek te vinden waarin u de vermelding wilt plaatsen. Als u het gebeurtenislogboek leest, kunt u het Source, of een Log en MachineName.

Note

U hoeft niet op te geven MachineName of u verbinding maakt met een logboek op de lokale computer. Als u het MachineName lezen uit een logboek niet opgeeft, wordt ervan uitgegaan dat de lokale computer (".") wordt gebruikt.

Gebruik WriteEvent en WriteEntry schrijf gebeurtenissen naar een gebeurtenislogboek. U moet een gebeurtenisbron opgeven om gebeurtenissen te schrijven; u moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft.

Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

U kunt een gebeurtenisbron maken voor een bestaand gebeurtenislogboek of een nieuw gebeurtenislogboek. Wanneer u een nieuwe bron voor een nieuw gebeurtenislogboek maakt, registreert het systeem de bron voor dat logboek, maar wordt het logboek pas gemaakt nadat de eerste vermelding ernaar is geschreven.

In het besturingssysteem worden gebeurtenislogboeken opgeslagen als bestanden. Wanneer u een nieuw gebeurtenislogboek gebruikt EventLogInstaller of CreateEventSource maakt, wordt het bijbehorende bestand opgeslagen in de %SystemRoot%map \System32\Config op de opgegeven computer. De bestandsnaam wordt ingesteld door de eerste 8 tekens van de Log eigenschap toe te voegen met de bestandsnaamextensie .evt.

De bron moet uniek zijn op de lokale computer; een nieuwe bronnaam kan niet overeenkomen met een bestaande bronnaam of een bestaande naam van het gebeurtenislogboek. Elke bron kan slechts naar één gebeurtenislogboek tegelijk schrijven; Uw toepassing kan echter meerdere bronnen gebruiken om naar meerdere gebeurtenislogboeken te schrijven. Uw toepassing kan bijvoorbeeld meerdere bronnen vereisen die zijn geconfigureerd voor verschillende gebeurtenislogboeken of verschillende resourcebestanden.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Als u de configuratiedetails van een bestaande bron wilt wijzigen, moet u de bron verwijderen en deze vervolgens maken met de nieuwe configuratie. Als andere toepassingen of onderdelen de bestaande bron gebruiken, maakt u een nieuwe bron met de bijgewerkte configuratie in plaats van de bestaande bron te verwijderen.

Note

Als een bron al is toegewezen aan een logboek en u deze opnieuw toe wijzen aan een nieuw logboek, moet u de computer opnieuw opstarten om de wijzigingen van kracht te laten worden.

Zie ook

Van toepassing op

CreateEventSource(String, String, String)

Let op

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

Hiermee wordt de opgegeven bronnaam ingesteld als een geldige gebeurtenisbron voor het schrijven van vermeldingen naar een logboek op de opgegeven computer. Deze methode kan ook worden gebruikt voor het maken van een nieuw aangepast logboek op de opgegeven computer.

public:
 static void CreateEventSource(System::String ^ source, System::String ^ logName, System::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")]
public static void CreateEventSource(string source, string logName, string machineName);
static member CreateEventSource : string * string * string -> unit
[<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
Public Shared Sub CreateEventSource (source As String, logName As String, machineName As String)

Parameters

source
String

De bron waarmee de toepassing is geregistreerd op de opgegeven computer.

logName
String

De naam van het logboek waarnaar de vermeldingen van de bron worden geschreven. Mogelijke waarden zijn toepassing, systeem of een aangepast gebeurtenislogboek. Als u geen waarde opgeeft, logName wordt standaard de toepassing gebruikt.

machineName
String

De naam van de computer waarmee deze gebeurtenisbron moet worden geregistreerd, of '.' voor de lokale computer.

Kenmerken

Uitzonderingen

Het machineName is geen geldige computernaam.

– of –

source is een lege tekenreeks ("") of null.

– of –

logName is geen geldige naam van het gebeurtenislogboek. Namen van gebeurtenislogboeken moeten bestaan uit afdrukbare tekens en mogen de tekens *, ?of \niet bevatten.

– of –

logName is niet geldig voor het maken van gebruikerslogboeken. De gebeurtenislogboeknamen AppEvent, SysEvent en SecEvent zijn gereserveerd voor systeemgebruik.

– of –

De logboeknaam komt overeen met de naam van een bestaande gebeurtenisbron.

– of –

De bronnaam resulteert in een registersleutelpad dat langer is dan 254 tekens.

– of –

De eerste 8 tekens komen logName overeen met de eerste acht tekens van een bestaande gebeurtenislogboeknaam op de opgegeven computer.

– of –

De bron kan niet worden geregistreerd omdat deze al bestaat op de opgegeven computer.

– of –

De bronnaam komt overeen met een bestaande naam van de gebeurtenisbron.

De registersleutel voor het gebeurtenislogboek kan niet worden geopend op de opgegeven computer.

Opmerkingen

Gebruik deze overbelasting om een aangepast logboek te maken of om een Source bestaand logboek op de opgegeven computer te maken en te registreren.

Als logName dit een lege tekenreeks ("") is null wanneer u aanroept CreateEventSource, wordt het logboek standaard ingesteld op het toepassingslogboek. Als het logboek niet bestaat op de opgegeven computer, maakt het systeem een aangepast logboek en registreert uw toepassing als een Source voor dat logboek.

U hoeft alleen een gebeurtenisbron te maken als u naar het gebeurtenislogboek schrijft. Voordat u een vermelding in een gebeurtenislogboek schrijft, moet u de gebeurtenisbron registreren bij het gebeurtenislogboek als een geldige bron van gebeurtenissen. Wanneer u een logboekvermelding schrijft, wordt het systeem gebruikt Source om het juiste logboek te vinden waarin u de vermelding wilt plaatsen. Als u het gebeurtenislogboek leest, kunt u het Source, of een Log en MachineName.

Note

Als u een gebeurtenisbron wilt maken in Windows Vista en hoger of Windows Server 2003, moet u beheerdersbevoegdheden hebben.

De reden hiervoor is dat alle gebeurtenislogboeken, inclusief beveiliging, moeten worden doorzocht om te bepalen of de gebeurtenisbron uniek is. In Windows Vista en hoger hebben gebruikers geen toegang tot het beveiligingslogboek. Daarom wordt er een SecurityException gegenereerd.

In Windows Vista en hoger bepaalt UAC (User Account Control) de bevoegdheden van een gebruiker. Als u lid bent van de groep Ingebouwde beheerders, hebt u twee runtime-toegangstokens toegewezen: een standaard toegangstoken voor gebruikers en een beheerderstoegangstoken. Standaard hebt u de standaardgebruikersrol. Als u de code wilt uitvoeren die toegang heeft tot het beveiligingslogboek, moet u eerst uw bevoegdheden verhogen van de standaardgebruiker naar de beheerder. U kunt dit doen wanneer u een toepassing start door met de rechtermuisknop op het toepassingspictogram te klikken en aan te geven dat u wilt uitvoeren als beheerder.

Gebruik WriteEvent en WriteEntry schrijf gebeurtenissen naar een gebeurtenislogboek. U moet een gebeurtenisbron opgeven om gebeurtenissen te schrijven; u moet de gebeurtenisbron maken en configureren voordat u de eerste vermelding met de bron schrijft.

Maak de nieuwe gebeurtenisbron tijdens de installatie van uw toepassing. Hierdoor kan het besturingssysteem de lijst met geregistreerde gebeurtenisbronnen en hun configuratie vernieuwen. Als het besturingssysteem de lijst met gebeurtenisbronnen niet heeft vernieuwd en u probeert een gebeurtenis te schrijven met de nieuwe bron, mislukt de schrijfbewerking. U kunt een nieuwe bron configureren met behulp van een EventLogInstallerof met behulp van de CreateEventSource methode. U moet beheerdersrechten hebben op de computer om een nieuwe gebeurtenisbron te maken.

U kunt een gebeurtenisbron maken voor een bestaand gebeurtenislogboek of een nieuw gebeurtenislogboek. Wanneer u een nieuwe bron voor een nieuw gebeurtenislogboek maakt, registreert het systeem de bron voor dat logboek, maar wordt het logboek pas gemaakt nadat de eerste vermelding ernaar is geschreven.

In het besturingssysteem worden gebeurtenislogboeken opgeslagen als bestanden. Wanneer u een nieuw gebeurtenislogboek gebruikt EventLogInstaller of CreateEventSource maakt, wordt het bijbehorende bestand opgeslagen in de %SystemRoot%map \System32\Config op de opgegeven computer. De bestandsnaam wordt ingesteld door de eerste 8 tekens van de Log eigenschap toe te voegen met de bestandsnaamextensie .evt.

De bron moet uniek zijn op de lokale computer; een nieuwe bronnaam kan niet overeenkomen met een bestaande bronnaam of een bestaande naam van het gebeurtenislogboek. Elke bron kan slechts naar één gebeurtenislogboek tegelijk schrijven; Uw toepassing kan echter meerdere bronnen gebruiken om naar meerdere gebeurtenislogboeken te schrijven. Uw toepassing kan bijvoorbeeld meerdere bronnen vereisen die zijn geconfigureerd voor verschillende gebeurtenislogboeken of verschillende resourcebestanden.

De bron moet worden geconfigureerd voor het schrijven van gelokaliseerde vermeldingen of voor het schrijven van directe tekenreeksen. Als uw toepassing vermeldingen schrijft met zowel resource-id's als tekenreekswaarden, moet u twee afzonderlijke bronnen registreren. Configureer bijvoorbeeld één bron met resourcebestanden en gebruik die bron in de WriteEvent methode om vermeldingen te schrijven met behulp van resource-id's naar het gebeurtenislogboek. Maak vervolgens een andere bron zonder resourcebestanden en gebruik die bron in de WriteEntry methode om tekenreeksen rechtstreeks naar het gebeurtenislogboek te schrijven met behulp van die bron.

Als u de configuratiedetails van een bestaande bron wilt wijzigen, moet u de bron verwijderen en deze vervolgens maken met de nieuwe configuratie. Als andere toepassingen of onderdelen de bestaande bron gebruiken, maakt u een nieuwe bron met de bijgewerkte configuratie in plaats van de bestaande bron te verwijderen.

Note

Als een bron al is toegewezen aan een logboek en u deze opnieuw toe wijzen aan een nieuw logboek, moet u de computer opnieuw opstarten om de wijzigingen van kracht te laten worden.

Zie ook

Van toepassing op