Freigeben über


EventLog.EntryWritten Ereignis

Definition

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 truefestlegenEnableRaisingEvents. 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.

Gilt für:

Weitere Informationen