EventLog.CreateEventSource Método

Definição

Estabelece uma aplicação capaz de escrever informação de eventos num registo específico do sistema.

Sobrecargas

Name Description
CreateEventSource(EventSourceCreationData)

Estabelece uma fonte de evento válida para escrever mensagens de eventos localizadas, usando as propriedades de configuração especificadas para a fonte do evento e o registo de eventos correspondente.

CreateEventSource(String, String)

Estabelece o nome da fonte especificado como uma fonte de evento válida para escrever entradas num registo no computador local. Este método também pode criar um novo registo personalizado no computador local.

CreateEventSource(String, String, String)
Obsoleto.

Estabelece o nome da fonte especificado como uma fonte de evento válida para escrever entradas num registo no computador especificado. Este método também pode ser usado para criar um novo registo personalizado no computador especificado.

CreateEventSource(EventSourceCreationData)

Estabelece uma fonte de evento válida para escrever mensagens de eventos localizadas, usando as propriedades de configuração especificadas para a fonte do evento e o registo de eventos correspondente.

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)

Parâmetros

sourceData
EventSourceCreationData

As propriedades de configuração para a fonte de eventos e o seu registo de eventos alvo.

Exceções

O nome do computador especificado em sourceData não é válido.

-ou-

O nome da fonte especificado em sourceData é null.

-ou-

O nome do log especificado em sourceData não é válido. Os nomes dos registos de eventos devem consistir em caracteres imprimíveis e não podem incluir os caracteres '*', '?' ou '\'.

-ou-

O nome do registo especificado em sourceData não é válido para a criação do registo do utilizador. Os nomes do registo de eventos AppEvent, SysEvent e SecEvent estão reservados para uso no sistema.

-ou-

O nome do registo corresponde ao nome da fonte de um evento existente.

-ou-

O nome de origem especificado sourceData em resulta num caminho de chave de registo com mais de 254 caracteres.

-ou-

Os primeiros 8 caracteres do nome do registo especificados em sourceData não são únicos.

-ou-

O nome de origem especificado em sourceData já está registado.

-ou-

O nome de origem especificado em sourceData corresponde a um nome de registo de eventos existente.

A chave do registo para o registo de eventos não conseguiu ser aberta.

sourceData é null.

Exemplos

O exemplo seguinte determina se a fonte do evento nomeada SampleApplicationSource está registada no computador local. Se a fonte do evento não existir, o exemplo define o ficheiro de recurso da mensagem para a fonte e cria a nova fonte do evento. Finalmente, o exemplo define o nome de exibição localizado para o registo de eventos, usando o valor do identificador de recurso em DisplayNameMsgId e o caminho do ficheiro de recurso em 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

O exemplo utiliza o seguinte ficheiro de texto da mensagem, integrado na biblioteca de recursos EventLogMsgs.dll. Um ficheiro de texto de mensagem é a fonte a partir da qual o ficheiro de recurso da mensagem é criado. O ficheiro de texto da mensagem define os identificadores de recursos e o texto para as cadeias de inserção de categoria, mensagem de evento e parâmetros. Especificamente, o identificador de recurso 5001 está definido para o nome localizado do registo de eventos.

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

Observações

Use esta sobrecarga para configurar uma nova fonte para escrever entradas num registo de eventos no computador local ou num computador remoto. Não é necessário usar este método para ler a partir de um registo de eventos.

O CreateEventSource método utiliza a entrada sourceDataSourcee LogNameMachineName as propriedades para criar valores de registo no computador de destino para a nova fonte e o registo de eventos associado. Um novo nome de fonte não pode corresponder a um nome de fonte existente ou a um nome de registo de eventos existente no computador alvo. Se a LogName propriedade não estiver definida, a fonte é registada no registo de eventos da aplicação. Se o MachineName não for definido, a fonte é registada no computador local.

Note

Para criar uma fonte de evento no Windows Vista e versões posteriores ou no Windows Server 2003, deve ter privilégios administrativos.

A razão para este requisito é que todos os registos de eventos, incluindo a segurança, devem ser pesquisados para determinar se a fonte do evento é única. A partir de Windows Vista, os utilizadores não têm permissão para aceder ao registo de segurança; portanto, é lançado um SecurityException.

A partir do Windows Vista, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede ao registo de segurança, deve primeiro elevar os seus privilégios de utilizador padrão para administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Usar WriteEvent e WriteEntry para escrever eventos num registo de eventos. Deve especificar uma fonte de eventos para escrever eventos; Deve criar e configurar o código-fonte do evento antes de escrever a primeira entrada com o código-fonte.

Crie a nova fonte de eventos durante a instalação da sua aplicação. Isto permite que o sistema operativo atualize a sua lista de fontes de eventos registadas e a sua configuração. Se o sistema operativo não atualizou a sua lista de fontes de eventos, e tentar escrever um evento com a nova fonte, a operação de escrita falhará. Pode configurar uma nova fonte usando um EventLogInstaller, ou usando o CreateEventSource método. Deve ter direitos administrativos no computador para criar uma nova fonte de eventos.

Pode criar uma fonte de eventos para um registo de eventos existente ou para um novo registo de eventos. Quando crias uma nova fonte para um novo registo de eventos, o sistema regista a fonte desse registo, mas o registo só é criado quando a primeira entrada é escrita nele.

O sistema operativo armazena registos de eventos como ficheiros. Quando usa EventLogInstaller ou CreateEventSource cria um novo registo de eventos, o ficheiro associado é armazenado na pasta %SystemRoot%\System32\Config no computador especificado. O nome do ficheiro é definido adicionando os primeiros 8 caracteres da Log propriedade com a extensão do nome do ficheiro ".evt".

Cada fonte só pode escrever num registo de eventos de cada vez; No entanto, a sua aplicação pode usar múltiplas fontes para escrever em vários registos de eventos. Por exemplo, a sua aplicação pode exigir múltiplas fontes configuradas para diferentes registos de eventos ou diferentes ficheiros de recursos.

Pode registar a fonte do evento com ficheiro(s) de recurso localizado(s) para a sua categoria de evento e cadeias de mensagens. A sua aplicação pode escrever entradas do registo de eventos usando identificadores de recursos, em vez de especificar a cadeia real. O Visualizador de Eventos usa o identificador de recurso para encontrar e mostrar a cadeia correspondente do ficheiro de recurso localizado com base nas definições de idioma atuais. Pode registar um ficheiro separado para categorias de eventos, mensagens e cadeias de inserção de parâmetros, ou pode registar o mesmo ficheiro de recurso para os três tipos de cadeias. Use as CategoryCountpropriedades , CategoryResourceFile, MessageResourceFile, e ParameterResourceFile para configurar a fonte e escrever entradas localizadas no registo de eventos. Se a sua aplicação escreve valores de cadeias diretamente no registo de eventos, não precisa de definir essas propriedades.

A fonte deve ser configurada para escrever entradas localizadas ou para escrever strings diretas. Se a sua aplicação escrever entradas usando tanto identificadores de recursos como valores de cadeia, deve registar duas fontes separadas. Por exemplo, configure uma fonte com ficheiros de recursos e depois use essa fonte no WriteEvent método para escrever entradas usando identificadores de recurso no registo de eventos. Depois cria uma fonte diferente sem ficheiros de recurso e usa essa fonte no WriteEntry método para escrever strings diretamente no registo de eventos usando essa fonte.

Para alterar os detalhes de configuração de uma fonte existente, tem de apagar a fonte e depois criá-la com a nova configuração. Se outras aplicações ou componentes usarem a fonte existente, crie uma nova fonte com a configuração atualizada em vez de eliminar a fonte existente.

Note

Se uma fonte estiver configurada para um registo de eventos, e a reconfigurares para outro registo de eventos, tens de reiniciar o computador para que as alterações tenham efeito.

Ver também

Aplica-se a

CreateEventSource(String, String)

Estabelece o nome da fonte especificado como uma fonte de evento válida para escrever entradas num registo no computador local. Este método também pode criar um novo registo personalizado no computador local.

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

Parâmetros

source
String

O nome de origem pelo qual a aplicação está registada no computador local.

logName
String

O nome do registo onde estão escritas as entradas da fonte. Os valores possíveis incluem Aplicação, Sistema ou um registo de eventos personalizado.

Exceções

source é uma cadeia vazia ("") ou null.

-ou-

logName não é um nome válido de registo de eventos. Os nomes dos registos de eventos devem consistir em caracteres imprimíveis e não podem incluir os caracteres '*', '?' ou '\'.

-ou-

logName não é válido para criação de registos de utilizador. Os nomes do registo de eventos AppEvent, SysEvent e SecEvent são reservados para uso no sistema.

-ou-

O nome do registo corresponde ao nome da fonte de um evento existente.

-ou-

O nome de origem resulta num caminho de chave de registo com mais de 254 caracteres.

-ou-

Os primeiros 8 caracteres correspondem logName aos primeiros 8 caracteres de um nome de registo de eventos existente.

-ou-

A fonte não pode ser registada porque já existe no computador local.

-ou-

O nome de origem corresponde a um nome de registo de eventos existente.

A chave do registo para o registo de eventos não podia ser aberta no computador local.

Exemplos

O exemplo seguinte cria a fonte MySource se esta ainda não existir, e escreve uma entrada no registo MyNewLogde eventos .

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

Observações

Use esta sobrecarga para criar um registo personalizado ou para criar e registar um Source registo existente no computador local.

Se logName for null ou uma string vazia ("") quando chamar CreateEventSource, o log passa por defeito para o log de aplicação. Se o registo não existir no computador local, o sistema cria um registo personalizado e regista a sua aplicação como um Source para esse registo.

Note

Para criar uma fonte de evento no Windows Vista e versões posteriores ou no Windows Server 2003, deve ter privilégios administrativos.

A razão para este requisito é que todos os registos de eventos, incluindo a segurança, devem ser pesquisados para determinar se a fonte do evento é única. A partir de Windows Vista, os utilizadores não têm permissão para aceder ao registo de segurança; portanto, é lançado um SecurityException.

No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede ao registo de segurança, deve primeiro elevar os seus privilégios de utilizador padrão para administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Só precisas de criar uma fonte de eventos se estiveres a escrever no registo de eventos. Antes de escrever uma entrada num registo de eventos, deve registar a fonte do evento no registo de eventos como fonte válida de eventos. Quando escreve uma entrada de registo, o sistema utiliza o Source para encontrar o registo apropriado onde colocar a sua entrada. Se estiver a ler o registo de eventos, pode especificar o Source, ou um Log e MachineName.

Note

Não é obrigado a especificar se MachineName está a ligar-se a um registo no computador local. Se não especificar o MachineName ao ler de um registo, assume-se o computador local (".").

Usar WriteEvent e WriteEntry para escrever eventos num registo de eventos. Deve especificar uma fonte de eventos para escrever eventos; Deve criar e configurar o código-fonte do evento antes de escrever a primeira entrada com o código-fonte.

Crie a nova fonte de eventos durante a instalação da sua aplicação. Isto permite que o sistema operativo atualize a sua lista de fontes de eventos registadas e a sua configuração. Se o sistema operativo não atualizou a sua lista de fontes de eventos, e tentar escrever um evento com a nova fonte, a operação de escrita falhará. Pode configurar uma nova fonte usando um EventLogInstaller, ou usando o CreateEventSource método. Deve ter direitos administrativos no computador para criar uma nova fonte de eventos.

Pode criar uma fonte de eventos para um registo de eventos existente ou para um novo registo de eventos. Quando crias uma nova fonte para um novo registo de eventos, o sistema regista a fonte desse registo, mas o registo só é criado quando a primeira entrada é escrita nele.

O sistema operativo armazena registos de eventos como ficheiros. Quando usa EventLogInstaller ou CreateEventSource cria um novo registo de eventos, o ficheiro associado é armazenado na pasta %SystemRoot%\System32\Config no computador especificado. O nome do ficheiro é definido adicionando os primeiros 8 caracteres da Log propriedade com a extensão do nome do ficheiro ".evt".

A fonte deve ser única no computador local; Um novo nome de fonte não pode corresponder a um nome de fonte existente ou a um nome de registo de eventos existente. Cada fonte pode escrever apenas num registo de eventos de cada vez; No entanto, a sua aplicação pode usar múltiplas fontes para escrever em vários registos de eventos. Por exemplo, a sua aplicação pode exigir múltiplas fontes configuradas para diferentes registos de eventos ou diferentes ficheiros de recursos.

A fonte deve ser configurada para escrever entradas localizadas ou para escrever strings diretas. Se a sua aplicação escrever entradas usando tanto identificadores de recursos como valores de cadeia, deve registar duas fontes separadas. Por exemplo, configure uma fonte com ficheiros de recursos e depois use essa fonte no WriteEvent método para escrever entradas usando identificadores de recurso no registo de eventos. Depois cria uma fonte diferente sem ficheiros de recurso e usa essa fonte no WriteEntry método para escrever strings diretamente no registo de eventos usando essa fonte.

Para alterar os detalhes de configuração de uma fonte existente, tem de apagar a fonte e depois criá-la com a nova configuração. Se outras aplicações ou componentes usarem a fonte existente, crie uma nova fonte com a configuração atualizada em vez de eliminar a fonte existente.

Note

Se uma fonte já foi mapeada para um registo e a remapear para um novo registo, tem de reiniciar o computador para que as alterações tenham efeito.

Ver também

Aplica-se a

CreateEventSource(String, String, String)

Atenção

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

Estabelece o nome da fonte especificado como uma fonte de evento válida para escrever entradas num registo no computador especificado. Este método também pode ser usado para criar um novo registo personalizado no computador especificado.

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)

Parâmetros

source
String

A fonte pela qual a aplicação está registada no computador especificado.

logName
String

O nome do registo onde estão escritas as entradas da fonte. Os valores possíveis incluem Aplicação, Sistema ou um registo de eventos personalizado. Se não especificar um valor, logName por defeito é Application.

machineName
String

O nome do computador para registar esta fonte de eventos, ou "." para o computador local.

Atributos

Exceções

O machineName nome de computador não é válido.

-ou-

source é uma cadeia vazia ("") ou null.

-ou-

logName não é um nome válido de registo de eventos. Os nomes dos registos de eventos devem consistir em caracteres imprimíveis e não podem incluir os caracteres '*', '?' ou '\'.

-ou-

logName não é válido para criação de registos de utilizador. Os nomes do registo de eventos AppEvent, SysEvent e SecEvent são reservados para uso no sistema.

-ou-

O nome do registo corresponde ao nome da fonte de um evento existente.

-ou-

O nome de origem resulta num caminho de chave de registo com mais de 254 caracteres.

-ou-

Os primeiros 8 caracteres correspondem logName aos primeiros 8 caracteres de um nome de registo de eventos existente no computador especificado.

-ou-

A fonte não pode ser registada porque já existe no computador especificado.

-ou-

O nome de origem corresponde a um nome de fonte de evento já existente.

A chave do registo para o registo de eventos não podia ser aberta no computador especificado.

Observações

Use esta sobrecarga para criar um registo personalizado ou para criar e registar um Source registo num registo existente no computador especificado.

Se logName for null ou uma string vazia ("") quando chamar CreateEventSource, o log passa por defeito para o log de aplicação. Se o registo não existir no computador especificado, o sistema cria um registo personalizado e regista a sua aplicação como Source um para esse registo.

Só precisas de criar uma fonte de eventos se estiveres a escrever no registo de eventos. Antes de escrever uma entrada num registo de eventos, deve registar a fonte do evento no registo de eventos como fonte válida de eventos. Quando escreve uma entrada de registo, o sistema utiliza o Source para encontrar o registo apropriado onde colocar a sua entrada. Se estiver a ler o registo de eventos, pode especificar o Source, ou um Log e MachineName.

Note

Para criar uma fonte de evento no Windows Vista e versões posteriores ou no Windows Server 2003, deve ter privilégios administrativos.

A razão para este requisito é que todos os registos de eventos, incluindo a segurança, devem ser pesquisados para determinar se a fonte do evento é única. Em Windows Vista e posteriores, os utilizadores não têm permissão para aceder ao registo de segurança; por isso, é lançado um SecurityException.

No Windows Vista e posteriores, o Controlo de Conta de Utilizador (UAC) determina os privilégios de um utilizador. Se for membro do grupo Administradores Incorporados, é-lhe atribuídos dois tokens de acesso em tempo de execução: um token de acesso de utilizador padrão e um token de acesso de administrador. Por padrão, você está na função de usuário padrão. Para executar o código que acede ao registo de segurança, deve primeiro elevar os seus privilégios de utilizador padrão para administrador. Você pode fazer isso ao iniciar um aplicativo clicando com o botão direito do mouse no ícone do aplicativo e indicando que deseja executar como administrador.

Usar WriteEvent e WriteEntry para escrever eventos num registo de eventos. Deve especificar uma fonte de eventos para escrever eventos; Deve criar e configurar o código-fonte do evento antes de escrever a primeira entrada com o código-fonte.

Crie a nova fonte de eventos durante a instalação da sua aplicação. Isto permite que o sistema operativo atualize a sua lista de fontes de eventos registadas e a sua configuração. Se o sistema operativo não atualizou a sua lista de fontes de eventos, e tentar escrever um evento com a nova fonte, a operação de escrita falhará. Pode configurar uma nova fonte usando um EventLogInstaller, ou usando o CreateEventSource método. Deve ter direitos administrativos no computador para criar uma nova fonte de eventos.

Pode criar uma fonte de eventos para um registo de eventos existente ou para um novo registo de eventos. Quando crias uma nova fonte para um novo registo de eventos, o sistema regista a fonte desse registo, mas o registo só é criado quando a primeira entrada é escrita nele.

O sistema operativo armazena registos de eventos como ficheiros. Quando usa EventLogInstaller ou CreateEventSource cria um novo registo de eventos, o ficheiro associado é armazenado na pasta %SystemRoot%\System32\Config no computador especificado. O nome do ficheiro é definido adicionando os primeiros 8 caracteres da Log propriedade com a extensão do nome do ficheiro ".evt".

A fonte deve ser única no computador local; Um novo nome de fonte não pode corresponder a um nome de fonte existente ou a um nome de registo de eventos existente. Cada fonte pode escrever apenas num registo de eventos de cada vez; No entanto, a sua aplicação pode usar múltiplas fontes para escrever em vários registos de eventos. Por exemplo, a sua aplicação pode exigir múltiplas fontes configuradas para diferentes registos de eventos ou diferentes ficheiros de recursos.

A fonte deve ser configurada para escrever entradas localizadas ou para escrever strings diretas. Se a sua aplicação escrever entradas usando tanto identificadores de recursos como valores de cadeia, deve registar duas fontes separadas. Por exemplo, configure uma fonte com ficheiros de recursos e depois use essa fonte no WriteEvent método para escrever entradas usando identificadores de recurso no registo de eventos. Depois cria uma fonte diferente sem ficheiros de recurso e usa essa fonte no WriteEntry método para escrever strings diretamente no registo de eventos usando essa fonte.

Para alterar os detalhes de configuração de uma fonte existente, tem de apagar a fonte e depois criá-la com a nova configuração. Se outras aplicações ou componentes usarem a fonte existente, crie uma nova fonte com a configuração atualizada em vez de eliminar a fonte existente.

Note

Se uma fonte já foi mapeada para um registo e a remapear para um novo registo, tem de reiniciar o computador para que as alterações tenham efeito.

Ver também

Aplica-se a