EventInstance Construtores

Definição

Inicializa uma nova instância da EventInstance classe usando informação neutra em relação à linguagem para definir uma entrada no registo de eventos.

Sobrecargas

Name Description
EventInstance(Int64, Int32)

Inicializa uma nova instância da EventInstance classe usando os identificadores de recurso especificados para a mensagem localizada e o texto da categoria da entrada do evento.

EventInstance(Int64, Int32, EventLogEntryType)

Inicializa uma nova instância da EventInstance classe usando os identificadores de recursos especificados para a mensagem localizada e o texto da categoria da entrada do evento e o tipo especificado de entrada no registo de eventos.

EventInstance(Int64, Int32)

Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs

Inicializa uma nova instância da EventInstance classe usando os identificadores de recurso especificados para a mensagem localizada e o texto da categoria da entrada do evento.

public:
 EventInstance(long instanceId, int categoryId);
public EventInstance(long instanceId, int categoryId);
new System.Diagnostics.EventInstance : int64 * int -> System.Diagnostics.EventInstance
Public Sub New (instanceId As Long, categoryId As Integer)

Parâmetros

instanceId
Int64

Um identificador de recurso que corresponde a uma cadeia definida no ficheiro de recursos da mensagem da fonte do evento.

categoryId
Int32

Um identificador de recurso que corresponde a uma string definida no ficheiro de recursos de categoria da fonte do evento, ou zero para especificar nenhuma categoria para o evento.

Exceções

O instanceId parâmetro é um valor negativo ou um valor maior do que UInt32.MaxValue.

-ou-

O categoryId parâmetro é um valor negativo ou um valor maior do que UInt16.MaxValue.

Exemplos

O exemplo de código seguinte escreve uma entrada de evento informativo e depois reutiliza o EventInstance para escrever uma entrada para um evento de aviso num registo de eventos existente. O texto da mensagem do evento é especificado usando um identificador de recurso num ficheiro de recurso de mensagem. O exemplo de código assume que o ficheiro de recurso de mensagem correspondente foi registado para a fonte.


// Ensure that the source has already been registered using
// EventLogInstaller or EventLog.CreateEventSource.

string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
    // Define an informational event with no category.
    // The message identifier corresponds to the message text in the
    // message resource file defined for the source.
    EventInstance myEvent = new EventInstance(UpdateCycleCompleteMsgId, 0);

    // Write the event to the event log using the registered source.
    EventLog.WriteEvent(sourceName, myEvent);

    // Reuse the event data instance for another event entry.
    // Set the entry category and message identifiers for
    // the appropriate resource identifiers in the resource files
    // for the registered source.  Set the event type to Warning.

    myEvent.CategoryId = RefreshCategoryMsgId;
    myEvent.EntryType = EventLogEntryType.Warning;
    myEvent.InstanceId = ServerConnectionDownMsgId;

    // Write the event to the event log using the registered source.
    // Insert the machine name into the event message text.
    EventLog.WriteEvent(sourceName, myEvent, Environment.MachineName);
}
else
{
    Console.WriteLine("Warning - event source {0} not registered",
        sourceName);
}
' Ensure that the source has already been registered using
' EventLogInstaller or EventLog.CreateEventSource.
Dim sourceName as String = "SampleApplicationSource"
If EventLog.SourceExists(sourceName)
    
    ' Define an informational event with no category.
    ' The message identifier corresponds to the message text in the
    ' message resource file defined for the source.
    Dim myEvent As EventInstance = New EventInstance(UpdateCycleCompleteMsgId, 0)
    ' Write the event to the event log using the registered source.
    EventLog.WriteEvent(sourceName, myEvent)

    ' Reuse the event data instance for another event entry.
    ' Set the entry category and message identifiers for
    ' the appropriate resource identifiers in the resource files
    ' for the registered source.  Set the event type to Warning.

    myEvent.CategoryId = RefreshCategoryMsgId
    myEvent.EntryType = EventLogEntryType.Warning
    myEvent.InstanceId = ServerConnectionDownMsgId

    ' Write the event to the event log using the registered source.
    ' Insert the machine name into the event message text.
    EventLog.WriteEvent(sourceName, myEvent, Environment.MachineName)

Else 
    Console.WriteLine("Warning - event source {0} not registered", _
        sourceName)
End If

O exemplo de código utiliza o seguinte ficheiro de texto de mensagem, incorporado 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.

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

Para escrever uma entrada informativa num registo de eventos, inicialize um EventInstance e passe para o WriteEvent método. Defina o instanceId para o identificador de recurso da mensagem do evento na propriedade correspondente MessageResourceFile para a fonte. Defina o categoryId para um valor numérico de categoria, ou o identificador de recurso da categoria de evento na CategoryResourceFile propriedade para a fonte; defina o categoryId para zero para nenhuma categoria de evento. A EntryType propriedade para a nova instância está definida como Information por defeito.

O Visualizador de Eventos utiliza os identificadores de recursos para mostrar as correspondentes cadeias dos ficheiros de recursos localizados para a fonte. Deve registar a fonte com os ficheiros de recurso correspondentes antes de poder escrever eventos usando identificadores de recursos.

Ver também

Aplica-se a

EventInstance(Int64, Int32, EventLogEntryType)

Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs
Origem:
EventData.cs

Inicializa uma nova instância da EventInstance classe usando os identificadores de recursos especificados para a mensagem localizada e o texto da categoria da entrada do evento e o tipo especificado de entrada no registo de eventos.

public:
 EventInstance(long instanceId, int categoryId, System::Diagnostics::EventLogEntryType entryType);
public EventInstance(long instanceId, int categoryId, System.Diagnostics.EventLogEntryType entryType);
new System.Diagnostics.EventInstance : int64 * int * System.Diagnostics.EventLogEntryType -> System.Diagnostics.EventInstance
Public Sub New (instanceId As Long, categoryId As Integer, entryType As EventLogEntryType)

Parâmetros

instanceId
Int64

Um identificador de recurso que corresponde a uma cadeia definida no ficheiro de recursos da mensagem da fonte do evento.

categoryId
Int32

Um identificador de recurso que corresponde a uma string definida no ficheiro de recursos de categoria da fonte do evento, ou zero para especificar nenhuma categoria para o evento.

entryType
EventLogEntryType

Um valor que indica o tipo de EventLogEntryType evento.

Exceções

entryType não é um valor válido EventLogEntryType .

instanceId é um valor negativo ou um valor maior que UInt32.MaxValue.

-ou-

categoryId é um valor negativo ou um valor maior que UInt16.MaxValue.

Exemplos

O seguinte exemplo de código escreve duas entradas de eventos de auditoria no registo myNewLogde eventos. O exemplo de código cria uma nova fonte de eventos e um novo registo de eventos se estes não existirem no computador local. O texto da mensagem do evento é especificado usando um identificador de recurso num ficheiro de recurso.


// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
    // Call a local method to register the event log source
    // for the event log "myNewLog."  Use the resource file
    // EventLogMsgs.dll in the current directory for message text.

    string messageFile =  String.Format("{0}\\{1}",
        System.Environment.CurrentDirectory,
        "EventLogMsgs.dll");

    CreateEventSourceSample1(messageFile);
}

// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");

EventLog myEventLog = new EventLog(myLogName, ".", sourceName);

// Define two audit events.

// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);

// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};

// Write the events to the event log.

myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);

// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);

           Dim sourceName As String = "SampleApplicationSource"

           ' Create the event source if it does not exist.
           If Not EventLog.SourceExists(sourceName)
  
               ' Call a local method to register the event log source
               ' for the event log "myNewLog."  Use the resource file
               ' EventLogMsgs.dll in the current directory for message text.

               Dim messageFile As String =  String.Format("{0}\\{1}", _
                   System.Environment.CurrentDirectory, _
                   "EventLogMsgs.dll")

               CreateEventSourceSample1(messageFile)
           End If 

           ' Get the event log corresponding to the existing source.
           Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
       
           Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)

           ' Define two audit events.
           Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
           Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)

           ' Insert the method name into the event log message.
           Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
           
           ' Write the events to the event log.

           myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)

           ' Append binary data to the audit failure event entry.
           Dim binaryData() As Byte = { 7, 8, 9, 10 }
           myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)

O exemplo de código utiliza o seguinte ficheiro de texto de mensagem, incorporado 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.

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

Para escrever uma entrada num registo de eventos, inicialize um EventInstance e passe-a ao WriteEvent método. Defina o instanceId para o identificador de recurso da mensagem do evento na propriedade correspondente MessageResourceFile para a fonte. Defina o categoryId para um valor numérico de categoria, ou o identificador de recurso da categoria de evento na CategoryResourceFile propriedade para a fonte; defina o categoryId para zero para nenhuma categoria de evento.

O Visualizador de Eventos utiliza os identificadores de recursos para mostrar as correspondentes cadeias dos ficheiros de recursos localizados para a fonte. Deve registar a fonte com os ficheiros de recurso correspondentes antes de poder escrever eventos usando identificadores de recursos.

Defina o entryType para um dos tipos de entrada pré-definidos. O Visualizador de Eventos utiliza o tipo de evento para determinar qual ícone mostrar na vista de lista do registo de eventos.

Ver também

Aplica-se a