EventInstance.InstanceId Właściwość

Definicja

Pobiera lub ustawia identyfikator zasobu, który wyznacza tekst komunikatu wpisu zdarzenia.

public:
 property long InstanceId { long get(); void set(long value); };
public long InstanceId { get; set; }
member this.InstanceId : int64 with get, set
Public Property InstanceId As Long

Wartość właściwości

Identyfikator zasobu, który odpowiada ciągowi zdefiniowanemu w pliku zasobu komunikatu źródła zdarzeń.

Wyjątki

Właściwość jest ustawiona na wartość ujemną lub na wartość większą niż UInt32.MaxValue.

Przykłady

Poniższy przykład kodu zapisuje wpis zdarzenia informacyjnego, a następnie ponownie zapisuje EventInstance wpis dla zdarzenia ostrzegawczego do istniejącego dziennika zdarzeń. Tekst komunikatu o zdarzeniu jest określony przy użyciu identyfikatora zasobu w pliku zasobu komunikatu. W przykładzie kodu przyjęto założenie, że odpowiedni plik zasobu komunikatu został zarejestrowany dla źródła.

// 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 = gcnew EventInstance( UpdateCycleCompleteMsgId,0 );

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

   // 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.
   array<String^>^ss = {Environment::MachineName};
   EventLog::WriteEvent( sourceName, myEvent, ss );
}
else
{
   Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}

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

W przykładzie kodu użyto następującego pliku tekstowego wiadomości wbudowanego w bibliotekę zasobów EventLogMsgs.dll. Plik tekstowy wiadomości to źródło, z którego jest tworzony plik zasobu wiadomości. Plik tekstowy wiadomości definiuje identyfikatory zasobów i tekst dla kategorii, komunikatu o zdarzeniach i ciągów wstawiania parametrów.

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

Uwagi

Właściwość InstanceId jednoznacznie identyfikuje wpis zdarzenia dla skonfigurowanego źródła zdarzeń. W przypadku zdarzeń zdefiniowanych w plikach InstanceId zasobów komunikatów odpowiada identyfikatorowi zasobu skompilowanego z pól definicji komunikatów w pliku tekstowym wiadomości. Aplikacja może zapisywać zlokalizowane wpisy dziennika zdarzeń, ustawiając wartość na InstanceId identyfikator zasobu. Podgląd zdarzeń używa identyfikatora InstanceId zasobu do znajdowania i wyświetlania odpowiedniego ciągu z zlokalizowanego pliku zasobów na podstawie bieżących ustawień języka. Przed zapisem zdarzeń przy użyciu identyfikatorów zasobów należy zarejestrować źródło w odpowiednim pliku zasobu.

Aby uzyskać szczegółowe informacje na temat definiowania komunikatów o zdarzeniach i tworzenia plików zasobów dziennika zdarzeń, zobacz artykuł Kompilator komunikatów w dokumentacji zestawu SDK platformy. Aby uzyskać szczegółowe informacje o identyfikatorach dziennika zdarzeń, zobacz artykuł Identyfikatory zdarzeń w dokumentacji zestawu SDK platformy.

Dotyczy

Zobacz też