Gewusst wie: Schreiben von Einträgen in Ereignisprotokolle
Aktualisiert: November 2007
Indem Sie einen Eintrag in ein Ereignisprotokoll schreiben, legen Sie die Meldung, die in das Protokoll geschrieben werden soll, in Form einer Zeichenfolge fest. Eine Meldung sollte alle erforderlichen Informationen enthalten, um die Fehlerursache zu ermitteln und geeignete Korrekturmaßnahmen zu ergreifen.
Es gibt zwei Möglichkeiten, einen Eintrag in das Protokoll zu schreiben. Beide Methoden sind korrekt. Der direkte Weg besteht darin, eine Ereignisquelle für das Protokoll zu registrieren, in das Sie Einträge schreiben möchten, dann eine Komponente zu instanziieren und das Protokoll als dessen Source-Eigenschaft festzulegen und schließlich WriteEntry aufzurufen. Dadurch erübrigt es sich, die Log-Eigenschaft für die Instanz der Komponente festzulegen. Das Protokoll wird beim Herstellen einer Verbindung mit einer bereits registrierten Quelle automatisch ermittelt. Weitere Informationen über das Registrieren einer Quelle finden Sie unter Gewusst wie: Hinzufügen der Anwendung als Quelle für Ereignisprotokolleinträge.
Eine andere Herangehensweise an diesen Prozess besteht darin, eine EventLog-Komponente zu instanziieren, ihre Eigenschaften Source, MachineName und Log festzulegen und die WriteEntry-Methode aufzurufen. In diesem Fall würde die WriteEntry-Methode feststellen, ob die Quelle bereits existiert, und könnte die Quelle andernfalls gleich registrieren.
Die folgenden Bedingungen müssen erfüllt sein, damit Protokolleinträge erfolgreich geschrieben werden können:
Die Quelle muss für das gewünschte Protokoll registriert sein.
Hinweis: Sie müssen die Source-Eigenschaft auf die EventLog-Komponenteninstanz festlegen, bevor Sie Einträge in ein Protokoll schreiben können. Wenn ein Eintrag von einer Komponente geschrieben wird, überprüft das System automatisch, ob die angegebene Quelle für das Ereignisprotokoll, in das die Einträge von der Komponente geschrieben werden, registriert ist, und ruft ggf. die CreateEventSource-Methode auf. Im Allgemeinen erstellen Sie die neue Ereignisquelle während der Installation der Anwendung. Dies gibt dem Betriebssystem Gelegenheit, die Liste der registrierten Ereignisquellen und deren Konfiguration zu aktualisieren. Wenn das Betriebssystem die Liste der Ereignisquellen nicht aktualisiert hat und Sie versuchen, ein Ereignis mit der neuen Quelle zu schreiben, schlägt der Schreibvorgang fehl. Wenn die Quelle nicht während der Installation erstellt werden kann, versuchen Sie, die Quelle deutlich vor dem ersten Schreibvorgang zu erstellen, möglicherweise bei der Anwendungsinitialisierung. Wenn Sie diesen Ansatz wählen, stellen Sie sicher, dass der Initialisierungscode mit Administratorrechten auf dem Computer ausgeführt wird. Diese Rechte sind für das Erstellen von neuen Ereignisquellen erforderlich.
Die angegebene Meldung darf eine Größe von 16 KB nicht überschreiten.
Die Anwendung muss Schreibzugriff auf das Protokoll besitzen, in das der Eintrag geschrieben wird. Weitere Informationen hierzu finden Sie unter Sicherheitsauswirkungen von Ereignisprotokollen.
Beim Schreiben von Einträgen können mehrere Parameter angegeben werden, darunter der Eintragstyp, eine ID zur Kennzeichnung des Ereignisses, eine Kategorie und beliebige binäre Daten, die an den Eintrag angehängt werden sollen.
So schreiben Sie einen Ereignisprotokolleintrag
Instanziieren Sie eine EventLog-Komponente. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Instanzen von EventLog-Komponenten.
Registrieren Sie mithilfe der CreateEventSource-Methode eine Ereignisquelle für das Protokoll, in das Sie einen Eintrag schreiben möchten. Legen Sie die registrierte Quelle als Source-Eigenschaft für die Komponente fest. Weitere Informationen hierzu finden Sie unter Gewusst wie: Konfigurieren von Instanzen von EventLog-Komponenten. Rufen Sie die WriteEntry-Methode auf, um den Eintrag festzulegen, der in das Protokoll geschrieben werden soll.
If Not EventLog.SourceExists("MyApp1") Then EventLog.CreateEventSource("MyApp1", "Application") End If EventLog1.Source = "MyApp1" EventLog1.WriteEntry("This is a simple event log entry")
if (!System.Diagnostics.EventLog.SourceExists("MyApp1")) System.Diagnostics.EventLog.CreateEventSource( "MyApp1", "Application"); EventLog1.Source = "MyApp"; EventLog1.WriteEntry("This is a simple event log entry");
So schreiben Sie einen lokalisierten Ereignisprotokolleintrag
Instanziieren Sie eine EventLog-Komponente. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Instanzen von EventLog-Komponenten.
Um lokalisierte Ereignisprotokolleinträge zu schreiben, verwenden Sie die WriteEvent-Methode. In diesem Fall legen Sie die Ereigniseigenschaften mit Ressourcenbezeichnern anstelle von Zeichenfolgenwerten fest. Die Ereignisanzeige zeigt mithilfe der Ressourcenbezeichner die entsprechenden Zeichenfolgen aus der lokalisierten Ressourcendatei für die Quelle an. Sie müssen die Quelle mit der entsprechenden Ressourcendatei registrieren, bevor Sie Ereignisse mit Ressourcenbezeichnern schreiben. Weitere Informationen über das Registrieren einer Ressourcendatei finden Sie unter EventSourceCreationData Class.
If Not EventLog.SourceExists("MyApp1") Then EventLog.CreateEventSource("MyApp1", "Application") End If EventLog1.Source = "MyApp1" EventLog1.WriteEvent(New EventInstance(1, 1), New String() {"message"})
if (!System.Diagnostics.EventLog.SourceExists("MyApp1")) System.Diagnostics.EventLog.CreateEventSource( "MyApp1", "Application"); EventLog1.Source = "MyApp"; EventLog1.WriteEvent(new System.Diagnostics.EventInstance(1, 1), new string[] { "message" });
Siehe auch
Aufgaben
Gewusst wie: Konfigurieren von Instanzen von EventLog-Komponenten
Gewusst wie: Erstellen von Instanzen von EventLog-Komponenten
Gewusst wie: Hinzufügen der Anwendung als Quelle für Ereignisprotokolleinträge
Exemplarische Vorgehensweise: Auswerten von Ereignisprotokollen, Ereignisquellen und Einträgen
Konzepte
Einführung in die EventLog-Komponente