EventLog.EntryWritten Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Yerel bilgisayardaki bir olay günlüğüne bir giriş yazıldığında gerçekleşir.
public:
event System::Diagnostics::EntryWrittenEventHandler ^ EntryWritten;
public event System.Diagnostics.EntryWrittenEventHandler EntryWritten;
member this.EntryWritten : System.Diagnostics.EntryWrittenEventHandler
Public Custom Event EntryWritten As EntryWrittenEventHandler
Olay Türü
Örnekler
Aşağıdaki örnek, yazılan bir girdi olayını işler.
#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
Açıklamalar
Olay bildirimlerini almak için olarak ayarlamanız EnableRaisingEventstrue
gerekir. Olay bildirimlerini yalnızca yerel bilgisayarda girdiler yazıldığında alabilirsiniz. Uzak bilgisayarlarda yazılan girdiler için bildirim alamazsınız.
Bir EntryWritten temsilci oluşturduğunuzda, olayı işleyecek yöntemi tanımlarsınız. Olayı olay işleyicinizle ilişkilendirmek için olaya temsilcinin bir örneğini ekleyin. Olay işleyicisi, siz temsilciyi kaldırana kadar olay gerçekleştiğinde çağrılır. Temsilcileriyle olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.
Sistem yalnızca son yazma olayının daha önce en az altı saniye olması durumunda yanıt verir WriteEntry . Bu, birden fazla olay günlüğü değişikliği olsa bile altı saniyelik bir aralık içinde yalnızca bir olay bildirimi alacağınız EntryWritten anlamına gelir. çağrısı WriteEntryarasına yeterince uzun bir uyku aralığı (yaklaşık 10 saniye) eklerseniz, bir olayı kaçırma olasılığınız daha düşüktür. Ancak, yazma olayları daha sık gerçekleşirse, bir sonraki araya kadar olay bildirimi almayabilirsiniz. Genellikle, kaçırılan olay bildirimleri kaybolmaz, ancak geciktirilir.