(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

EventInstance-Klasse

Aktualisiert: November 2007

Stellt sprachneutrale Informationen für einen Ereignisprotokolleintrag dar.

Namespace:  System.Diagnostics
Assembly:  System (in System.dll)
public class EventInstance
public class EventInstance
public class EventInstance

Zum Schreiben eines Ereignisprotokolleintrags mit einem Ressourcenbezeichner anstelle eines Zeichenfolgenwerts verwenden Sie EventInstance. Um einen Ereignisprotokolleintrag zu schreiben, initialisieren Sie die InstanceId-Eigenschaft, und übergeben Sie die Instanz an die WriteEvent-Methode. Die Ereignisanzeige sucht anhand des Instanzbezeichners und der aktuellen Spracheinstellungen nach der entsprechenden Zeichenfolge in der lokalisierten Ressourcendatei und zeigt sie an. Sie müssen die Ereignisquelle bei der entsprechenden Ressourcendatei registrieren, bevor Sie Ereignisse mit Ressourcenbezeichnern schreiben.

Beim Schreiben von Ereignissen können Sie die EntryType-Eigenschaft festlegen, um das Symbol anzugeben, das die Ereignisanzeige für den Eintrag anzeigen soll. Sie können außerdem eine CategoryId-Eigenschaft angeben, um die Kategorie festzulegen, die die Ereignisanzeige für den Eintrag anzeigen soll.

Die Ereignisanzeige filtert anhand der Kategorie die von einer Ereignisquelle geschriebenen Ereignisse. In der Ereignisanzeige kann die Kategorie als numerischer Wert dargestellt werden, oder die Kategorie kann als Ressourcenbezeichner zur Anzeige einer lokalisierten Kategoriezeichenfolge verwendet werden.

Zum Anzeigen von lokalisierten Kategoriezeichenfolgen in der Ereignisanzeige müssen Sie eine mit einer Kategorieressourcendatei konfigurierte Ereignisquelle verwenden und die CategoryId auf einen Ressourcenbezeichner in der Kategorieressourcendatei festlegen. Wenn die Ereignisquelle über keine konfigurierte Kategorieressourcendatei verfügt oder die angegebene CategoryId keine Zeichenfolge in der Kategorieressourcendatei indiziert, wird in der Ereignisanzeige der numerische Kategoriewert für diesen Eintrag angezeigt. Konfigurieren Sie die Kategorieressourcendatei sowie die Anzahl der Kategoriezeichenfolgen in der Ressourcendatei mithilfe der EventLogInstaller-Klasse oder der EventSourceCreationData-Klasse.

Sie müssen die Quelle für ein Ereignisprotokoll registrieren, bevor Sie mithilfe von EventInstance ein Ereignis mit der WriteEvent-Methode schreiben. Die Quelle muss zum Schreiben lokalisierter Einträge in das Protokoll konfiguriert sein und mindestens eine Meldungsressourcendatei definieren.

Erstellen Sie die neue Ereignisquelle während der Installation der Anwendung. So hat das Betriebssystem Zeit, die Liste der registrierten Ereignisquellen und deren Konfigurationen zu aktualisieren. Wenn die Liste der Ereignisquellen vom Betriebssystem nicht aktualisiert wurde und Sie versuchen, ein Ereignis für die neue Quelle zu schreiben, schlägt der Schreibvorgang fehl. Sie können eine neue Quelle entweder mithilfe eines EventLogInstaller oder mithilfe der CreateEventSource-Methode erstellen. Sie benötigen Administratorrechte für den Computer, um eine neue Ereignisquelle zu erstellen.

Ausführliche Informationen zum Definieren von Ereignismeldungen und das Erstellen von Dateien für Ereignisprotokollressourcen finden Sie im Thema "Message Compiler" in der Platform SDK-Dokumentation unter http://www.microsoft.com/germany/msdn.

Hinweis zu Windows 98, Windows Millennium Edition:

Ereignisprotokolle werden unter Windows 98 oder Windows Millennium Edition (Me) nicht unterstützt.

Im folgenden Codebeispiel wird ein informativer Ereigniseintrag geschrieben und anschließend die EventInstance erneut zum Schreiben eines Eintrags für ein Warnungsereignis in ein vorhandenes Ereignisprotokoll verwendet. Der Ereignismeldungstext wird mithilfe eines Ressourcenbezeichners in einer Meldungsressourcendatei angegeben. Das Codebeispiel setzt voraus, dass die zugehörige Nachrichtenressourcendatei für die Quelle registriert wurde.


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



Im Codebeispiel wird die nachfolgende, in die Ressourcenbibliothek EventLogMsgs.dll integrierte Meldungstextdatei verwendet. Eine Meldungstextdatei bildet die Quelle für die Erstellung einer Meldungsressourcendatei. In der Meldungstextdatei sind die Ressourcenbezeichner und der Text für die Kategorie, die Ereignismeldung und die Parametereinfügungs-Zeichenfolgen definiert.

; // 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
.
System.Object
  System.Diagnostics.EventInstance
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5, 3.0, 2.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.