Condividi tramite


EventLog.EntryWritten Evento

Definizione

Si verifica quando viene scritta una voce in un registro eventi del computer locale.

public:
 event System::Diagnostics::EntryWrittenEventHandler ^ EntryWritten;
public event System.Diagnostics.EntryWrittenEventHandler EntryWritten;
member this.EntryWritten : System.Diagnostics.EntryWrittenEventHandler 
Public Custom Event EntryWritten As EntryWrittenEventHandler 

Tipo evento

Esempio

Nell'esempio seguente viene gestito un evento scritto dalla voce.

#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

Commenti

Per ottenere le notifiche degli eventi, è necessario impostare su EnableRaisingEventstrue. È possibile ricevere notifiche di evento solo quando le voci vengono scritte nel computer locale. Non è possibile ricevere notifiche per le voci scritte nei computer remoti.

Quando si crea un delegato di EntryWritten, si identifica il metodo con cui gestire l'evento. Per associare l'evento al gestore eventi in uso, aggiungere all'evento un'istanza del delegato. Il gestore eventi viene chiamato ogni volta che si verifica l'evento finché non si rimuove il delegato. Per altre informazioni sulla gestione degli eventi con delegati, vedere Gestione e generazione di eventi.

Il sistema risponde WriteEntry solo se l'ultimo evento di scrittura si è verificato almeno sei secondi in precedenza. Ciò implica che si riceverà una sola notifica evento entro un EntryWritten intervallo di sei secondi, anche se si verifica una modifica di più log eventi. Se si inserisce un intervallo di sospensione sufficientemente lungo (circa 10 secondi) tra le chiamate a WriteEntry, è meno probabile che si verifichi un evento. Tuttavia, se gli eventi di scrittura si verificano più frequentemente, potrebbe non ricevere la notifica dell'evento fino all'intervallo successivo. In genere, le notifiche degli eventi mancanti non vengono perse, ma ritardate.

Si applica a

Vedi anche