EventLog.EntryWritten Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt beim Schreiben eines Eintrags in das Ereignisprotokoll auf dem lokalen Computer ein.
public:
event System::Diagnostics::EntryWrittenEventHandler ^ EntryWritten;
public event System.Diagnostics.EntryWrittenEventHandler EntryWritten;
member this.EntryWritten : System.Diagnostics.EntryWrittenEventHandler
Public Custom Event EntryWritten As EntryWrittenEventHandler
Ereignistyp
Beispiele
Im folgenden Beispiel wird ein eintragsgeschriebenes Ereignis behandelt.
#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
ref class MySample
{
private:
// This member is used to wait for events.
static AutoResetEvent^ signal;
public:
static void main()
{
signal = gcnew AutoResetEvent( false );
EventLog^ myNewLog = gcnew EventLog;
myNewLog->Source = "testEventLogEvent";
myNewLog->EntryWritten += gcnew EntryWrittenEventHandler( MyOnEntryWritten );
myNewLog->EnableRaisingEvents = true;
myNewLog->WriteEntry("Test message", EventLogEntryType::Information);
signal->WaitOne();
}
static void MyOnEntryWritten( Object^ /*source*/, EntryWrittenEventArgs^ /*e*/ )
{
Console::WriteLine("In event handler");
signal->Set();
}
};
int main()
{
MySample::main();
}
using System;
using System.Diagnostics;
using System.Threading;
class MySample{
// This member is used to wait for events.
static AutoResetEvent signal;
public static void Main(){
signal = new AutoResetEvent(false);
EventLog myNewLog = new EventLog("Application", ".", "testEventLogEvent");
myNewLog.EntryWritten += new EntryWrittenEventHandler(MyOnEntryWritten);
myNewLog.EnableRaisingEvents = true;
myNewLog.WriteEntry("Test message", EventLogEntryType.Information);
signal.WaitOne();
}
public static void MyOnEntryWritten(object source, EntryWrittenEventArgs e){
Console.WriteLine("In event handler");
signal.Set();
}
}
Option Explicit On
Option Strict On
Imports System.Diagnostics
Imports System.Threading
Class MySample
' This member is used to wait for events.
Private Shared signal As AutoResetEvent
Public Shared Sub Main()
signal = New AutoResetEvent(False)
Dim myNewLog As New EventLog("Application", ".", "testEventLogEvent")
AddHandler myNewLog.EntryWritten, AddressOf MyOnEntryWritten
myNewLog.EnableRaisingEvents = True
myNewLog.WriteEntry("Test message", EventLogEntryType.Information)
signal.WaitOne()
End Sub
Public Shared Sub MyOnEntryWritten(ByVal [source] As Object, ByVal e As EntryWrittenEventArgs)
Console.WriteLine("In event handler")
signal.Set()
End Sub
End Class
Hinweise
Um Ereignisbenachrichtigungen zu erhalten, müssen Sie auf true
festlegenEnableRaisingEvents. Sie können nur Ereignisbenachrichtigungen erhalten, wenn Einträge auf dem lokalen Computer geschrieben werden. Sie können keine Benachrichtigungen für Einträge erhalten, die auf Remotecomputern geschrieben wurden.
Beim Erstellen eines EntryWritten-Delegaten geben Sie die Methode für die Ereignisbehandlung an. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird immer aufgerufen, wenn das Ereignis eintritt, bis Sie den Delegaten entfernen. Weitere Informationen zum Behandeln von Ereignissen mit Delegaten finden Sie unter Behandeln und Auslösen von Ereignissen.
Das System antwortet nur, WriteEntry wenn das letzte Schreibereignis mindestens sechs Sekunden zuvor aufgetreten ist. Dies bedeutet, dass Sie innerhalb eines Sechs-Sekunden-Intervalls nur eine EntryWritten Ereignisbenachrichtigung erhalten, auch wenn mehr als eine Ereignisprotokolländerung eintritt. Wenn Sie ein ausreichend langes Standbyintervall (ca. 10 Sekunden) zwischen Aufrufen von WriteEntryeinfügen, ist es weniger wahrscheinlich, dass ein Ereignis verpasst wird. Wenn Schreibereignisse jedoch häufiger auftreten, erhalten Sie die Ereignisbenachrichtigung möglicherweise erst im nächsten Intervall. In der Regel gehen Benachrichtigungen über verpasste Ereignisse nicht verloren, sondern verzögert.