Compartir vía


EventLog.EntryWritten Evento

Definición

Se produce cuando se escribe una entrada en un registro de eventos en el equipo local.

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 de evento

Ejemplos

En el ejemplo siguiente se controla un evento escrito de entrada.

#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

Comentarios

Para obtener notificaciones de eventos, debe establecer en EnableRaisingEventstrue. Solo puede recibir notificaciones de eventos cuando las entradas se escriben en el equipo local. No puede recibir notificaciones de entradas escritas en equipos remotos.

Cuando se crea un delegado EntryWritten, se identifica el método que controlará el evento. Para asociar el evento al controlador, se debe agregar una instancia del delegado al evento. Se llama al controlador de eventos cada vez que se produce el evento, hasta que se quita el delegado. Para obtener más información sobre cómo controlar eventos con delegados, vea Control y generación de eventos.

El sistema responde solo WriteEntry si el último evento de escritura se produjo al menos seis segundos antes. Esto implica que solo recibirá una EntryWritten notificación de evento dentro de un intervalo de seis segundos, incluso si se produce más de un cambio en el registro de eventos. Si inserta un intervalo de suspensión suficientemente largo (aproximadamente 10 segundos) entre las llamadas a WriteEntry, es menos probable que pierda un evento. Sin embargo, si los eventos de escritura se producen con más frecuencia, es posible que no reciba la notificación de eventos hasta el siguiente intervalo. Normalmente, las notificaciones de eventos perdidas no se pierden, pero se retrasan.

Se aplica a

Consulte también