EventLog.WriteEvent Yöntem
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.
Olay günlüğüne yerelleştirilmiş bir olay girişi yazar.
Aşırı Yüklemeler
WriteEvent(String, EventInstance, Object[]) |
Belirtilen kayıtlı olay kaynağını kullanarak verilen olay verileri ve ileti değiştirme dizeleriyle bir olay günlüğü girdisi yazar. |
WriteEvent(EventInstance, Object[]) |
Olay günlüğüne yerelleştirilmiş bir giriş yazar. |
WriteEvent(EventInstance, Byte[], Object[]) |
Verilen olay verileri, ileti değiştirme dizeleri ve ilişkili ikili verilerle bir olay günlüğü girdisi yazar. |
WriteEvent(String, EventInstance, Byte[], Object[]) |
Belirtilen olay verileri, ileti değiştirme dizeleri ve ilişkili ikili verilerle ve belirtilen kayıtlı olay kaynağını kullanarak bir olay günlüğü girdisi yazar. |
WriteEvent(String, EventInstance, Object[])
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
Belirtilen kayıtlı olay kaynağını kullanarak verilen olay verileri ve ileti değiştirme dizeleriyle bir olay günlüğü girdisi yazar.
public:
static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent (string source, System.Diagnostics.EventInstance instance, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, ParamArray values As Object())
Parametreler
- source
- String
Belirtilen bilgisayarda uygulama için kaydedilen olay kaynağının adı.
- instance
- EventInstance
EventInstance Yerelleştirilmiş olay günlüğü girişini temsil eden örnek.
- values
- Object[]
Olay günlüğü girdisinin ileti metniyle birleştirilecek dize dizisi.
Özel durumlar
source
Değer boş bir dizedir ("").
-veya-
source
değeri null
olur.
-veya-
instance.InstanceId
sıfırdan küçük veya UInt16.MaxValue değerinden büyük.
-veya-
values
256'dan fazla öğeye sahiptir.
-veya-
Öğelerden values
biri 32766 bayttan uzundur.
-veya-
Kaynak adı, kayıt defteri anahtarı yolunun 254 karakterden uzun olmasına neden olur.
instance
, null
değeridir.
Olay günlüğü için kayıt defteri anahtarı açılamadı.
İşletim sistemi, olay günlüğüne olay girdisi yazılırken bir hata bildirdi. Windows hata kodu kullanılamıyor.
Örnekler
Aşağıdaki örnek, var olan bir olay günlüğüne bilgilendiren bir olay girdisi ve bir uyarı olayı girişi yazar. Olay iletisi metni, kaynak dosyasındaki bir kaynak tanımlayıcısı kullanılarak belirtilir. Örnekte ilgili kaynak dosyasının kaynak için kaydedildiği varsayılır.
String^ sourceName = "SampleApplicationSource";
if ( EventLog::SourceExists( sourceName ) )
{
// Define an informational event and a warning event.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myInfoEvent = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
// Write the events to the event log.
EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
// Append binary data to the warning event entry.
array<Byte>^binaryData = {7,8,9,10};
EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}
string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
// Define an informational event and a warning event.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample2"};
// Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent);
// Append binary data to the warning event entry.
byte [] binaryData = { 7, 8, 9, 10 };
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings);
}
else
{
Console.WriteLine("Warning - event source {0} not registered",
sourceName);
}
Dim sourceName As String = "SampleApplicationSource"
If EventLog.SourceExists(sourceName)
' Define an informational event and a warning event.
' The message identifiers correspond to the message text in the
' message resource file defined for the source.
Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}
' Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)
' Append binary data to the warning event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
Else
Console.WriteLine("Warning - event source {0} not registered", _
sourceName)
End If
Örnek, kaynak kitaplığı EventLogMsgs.dll yerleşik olarak aşağıdaki ileti metin dosyasını kullanır. İleti metin dosyası, ileti kaynak dosyasının oluşturulduğu kaynaktır. İleti metin dosyası, kategori, olay iletisi ve parametre ekleme dizeleri için kaynak tanımlayıcılarını ve metni tanımlar.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Açıklamalar
Uygun günlük için zaten olay kaynağı olarak kaydedilmiş bir kaynak kullanarak olay günlüğüne yerelleştirilmiş bir giriş yazmak için bu yöntemi kullanın. Olay özelliklerini dize değerleri yerine kaynak tanımlayıcılarıyla belirtirsiniz. Olay Görüntüleyicisi, kaynağın yerelleştirilmiş kaynak dosyasından karşılık gelen dizeleri görüntülemek için kaynak tanımlayıcılarını kullanır. Kaynak tanımlayıcılarını kullanarak olayları yazmadan önce kaynağı ilgili kaynak dosyasına kaydetmeniz gerekir.
Giriş instance
örneği olay iletisini ve özelliklerini belirtir. InstanceIdinstance
Kaynak ileti kaynak dosyasında tanımlı ileti için girişi ayarlayın. İsteğe bağlı olarak, olay girdinizin kategorisini CategoryId ve olay türünü tanımlamak için girişin ve EntryTypeinstance
değerini ayarlayabilirsiniz. Yerelleştirilmiş ileti metnine eklenecek dilden bağımsız dizeler dizisi de belirtebilirsiniz. null
Olay iletisi, değiştirme dizeleri için biçimlendirme yer tutucuları içermiyorsa olarak ayarlayınvalues
.
Kullanmadan önce WriteEventbelirtilen kaynağın bir olay günlüğü için kaydedilmesi gerekir. Belirtilen kaynak, günlüğe yerelleştirilmiş girdiler yazmak için yapılandırılmalıdır; Kaynağın en azından tanımlanmış bir ileti kaynak dosyası olmalıdır.
Kaynakla ilk girişi yazmadan önce olay kaynağını oluşturup yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını İçerik Oluşturucu. Bu, işletim sisteminin kayıtlı olay kaynakları listesini ve yapılandırmalarını yenilemesine zaman tanır. İşletim sistemi olay kaynakları listesini yenilemediyse ve yeni kaynakla bir olay yazmaya çalışırsanız, yazma işlemi başarısız olur. Yeni bir kaynağı bir EventLogInstallerkullanarak veya yöntemini kullanarak CreateEventSource yapılandırabilirsiniz. Yeni bir olay kaynağı oluşturmak için bilgisayarda yönetici haklarına sahip olmanız gerekir.
Kaynak, yerelleştirilmiş girdiler yazmak veya doğrudan dizeler yazmak için yapılandırılmalıdır. WriteEntry Uygulamanız dize değerlerini doğrudan olay günlüğüne yazıyorsa yöntemini kullanın.
Uygulamanız hem kaynak tanımlayıcılarını hem de dize değerlerini kullanarak girdi yazıyorsa, iki ayrı kaynak kaydetmeniz gerekir. Örneğin, kaynak dosyalarıyla bir kaynak yapılandırın ve ardından olay günlüğüne kaynak tanımlayıcılarını kullanarak girdi yazmak için yönteminde WriteEvent bu kaynağı kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve yöntemde WriteEntry bu kaynağı kullanarak dizeleri doğrudan olay günlüğüne yazmak için kullanın.
Ayrıca bkz.
Şunlara uygulanır
WriteEvent(EventInstance, Object[])
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
Olay günlüğüne yerelleştirilmiş bir giriş yazar.
public:
void WriteEvent(System::Diagnostics::EventInstance ^ instance, ... cli::array <System::Object ^> ^ values);
public void WriteEvent (System.Diagnostics.EventInstance instance, params object[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent (System.Diagnostics.EventInstance instance, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteEvent : System.Diagnostics.EventInstance * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, ParamArray values As Object())
Parametreler
- instance
- EventInstance
EventInstance Yerelleştirilmiş olay günlüğü girişini temsil eden örnek.
- values
- Object[]
Olay günlüğü girdisinin ileti metniyle birleştirilecek dize dizisi.
- Öznitelikler
Özel durumlar
Source özelliği EventLog ayarlanmadı.
-veya-
yöntemi yeni bir olay kaynağı kaydetmeye çalıştı, ancak içindeki MachineName bilgisayar adı geçerli değil.
-veya-
Kaynak farklı bir olay günlüğü için zaten kayıtlı.
-veya-
instance.InstanceId
sıfırdan küçük veya UInt16.MaxValue değerinden büyük.
-veya-
values
256'dan fazla öğeye sahiptir.
-veya-
Öğelerden values
biri 32766 bayttan uzundur.
-veya-
Kaynak adı, kayıt defteri anahtarı yolunun 254 karakterden uzun olmasına neden olur.
instance
, null
değeridir.
Olay günlüğü için kayıt defteri anahtarı açılamadı.
İşletim sistemi, olay günlüğüne olay girdisi yazılırken bir hata bildirdi. Windows hata kodu kullanılamıyor.
Örnekler
Aşağıdaki örnek olay günlüğüne myNewLog
iki denetim girdisi yazar. Örnek, yerel bilgisayarda yoksa yeni bir olay kaynağı ve yeni bir olay günlüğü oluşturur. Olay iletisi metni, kaynak dosyasındaki bir kaynak tanımlayıcısı kullanılarak belirtilir.
// Create the event source if it does not exist.
String^ sourceName = "SampleApplicationSource";
if ( !EventLog::SourceExists( sourceName ) )
{
// Call a local method to register the event log source
// for the event log "myNewLog." Use the resource file
// EventLogMsgs.dll in the current directory for message text.
String^ messageFile = String::Format( "{0}\\{1}", System::Environment::CurrentDirectory, "EventLogMsgs.dll" );
CreateEventSourceSample1( messageFile );
}
// Get the event log corresponding to the existing source.
String^ myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );
// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myAuditSuccessEvent = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );
// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};
// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );
// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );
// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
// Call a local method to register the event log source
// for the event log "myNewLog." Use the resource file
// EventLogMsgs.dll in the current directory for message text.
string messageFile = String.Format("{0}\\{1}",
System.Environment.CurrentDirectory,
"EventLogMsgs.dll");
CreateEventSourceSample1(messageFile);
}
// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");
EventLog myEventLog = new EventLog(myLogName, ".", sourceName);
// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};
// Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);
// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);
Dim sourceName As String = "SampleApplicationSource"
' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)
' Call a local method to register the event log source
' for the event log "myNewLog." Use the resource file
' EventLogMsgs.dll in the current directory for message text.
Dim messageFile As String = String.Format("{0}\\{1}", _
System.Environment.CurrentDirectory, _
"EventLogMsgs.dll")
CreateEventSourceSample1(messageFile)
End If
' Get the event log corresponding to the existing source.
Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)
' Define two audit events.
Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
' Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)
' Append binary data to the audit failure event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)
Örnek, kaynak kitaplığı EventLogMsgs.dll yerleşik olarak aşağıdaki ileti metin dosyasını kullanır. İleti metin dosyası, ileti kaynak dosyasının oluşturulduğu kaynaktır. İleti metin dosyası, kategori, olay iletisi ve parametre ekleme dizeleri için kaynak tanımlayıcılarını ve metni tanımlar.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Açıklamalar
Olay günlüğüne yerelleştirilmiş bir giriş yazmak için bu yöntemi kullanın. Olay özelliklerini dize değerleri yerine kaynak tanımlayıcılarıyla belirtirsiniz. Olay Görüntüleyicisi, için yerelleştirilmiş kaynak dosyasından karşılık gelen dizeleri görüntülemek için kaynak tanımlayıcılarını Sourcekullanır. Kaynak tanımlayıcılarını kullanarak olayları yazmadan önce kaynağı ilgili kaynak dosyasına kaydetmeniz gerekir.
Giriş instance
örneği olay iletisini ve özelliklerini belirtir. InstanceIdinstance
Kaynak ileti kaynak dosyasında tanımlı ileti için girişi ayarlayın. İsteğe bağlı olarak, olay girdinizin kategorisini CategoryId ve olay türünü tanımlamak için girişin ve EntryTypeinstance
değerini ayarlayabilirsiniz. Yerelleştirilmiş ileti metnine eklenecek dilden bağımsız dizeler dizisi de belirtebilirsiniz. null
Olay iletisi, değiştirme dizeleri için biçimlendirme yer tutucuları içermiyorsa olarak ayarlayınvalues
.
kullanmadan WriteEventönce bileşeninizde EventLog özelliğini ayarlamanız Source gerekir. Belirtilen kaynak, günlüğe yerelleştirilmiş girdiler yazmak için yapılandırılmalıdır; Kaynağın en azından tanımlanmış bir ileti kaynak dosyası olmalıdır.
Kaynakla ilk girişi yazmadan önce olay kaynağını oluşturup yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını İçerik Oluşturucu. Bu, işletim sisteminin kayıtlı olay kaynakları listesini ve yapılandırmalarını yenilemesine zaman tanır. İşletim sistemi olay kaynakları listesini yenilemediyse ve yeni kaynakla bir olay yazmaya çalışırsanız, yazma işlemi başarısız olur. Yeni bir kaynağı bir EventLogInstallerkullanarak veya yöntemini kullanarak CreateEventSource yapılandırabilirsiniz. Yeni bir olay kaynağı oluşturmak için bilgisayarda yönetici haklarına sahip olmanız gerekir.
Kaynak, yerelleştirilmiş girdiler yazmak veya doğrudan dizeler yazmak için yapılandırılmalıdır. WriteEntry Uygulamanız dize değerlerini doğrudan olay günlüğüne yazıyorsa yöntemini kullanın.
Uygulamanız hem kaynak tanımlayıcılarını hem de dize değerlerini kullanarak girdi yazıyorsa, iki ayrı kaynağı kaydetmeniz gerekir. Örneğin, kaynak dosyalarıyla bir kaynak yapılandırın ve ardından olay günlüğüne kaynak tanımlayıcılarını kullanarak girdi yazmak için yönteminde bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak dizeleri doğrudan olay günlüğüne yazmak için yönteminde WriteEntry kullanın.
Not
Uzak bilgisayara bir girdi yazarsanız, uzak bilgisayar .NET Framework çalıştırmıyorsa dizenin değeri message
beklediğiniz gibi olmayabilir. Ayrıca, message
olay görüntüleyicisi bunu bir ekleme dizesi olarak değerlendirdiğinden, dize %n öğesini içeremez; burada n bir tamsayı değeridir (örneğin, %1). Bir İnternet Protokolü, sürüm 6 (IPv6) adresi bu karakter dizisini içerebileceğinden, IPv6 adresi içeren bir olay iletisini günlüğe kaydedemezsiniz.
Ayrıca bkz.
Şunlara uygulanır
WriteEvent(EventInstance, Byte[], Object[])
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
Verilen olay verilerini, ileti değiştirme dizelerini ve ilişkili ikili verileri içeren bir olay günlüğü girdisi yazar.
public:
void WriteEvent(System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public void WriteEvent (System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
[System.Runtime.InteropServices.ComVisible(false)]
public void WriteEvent (System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.WriteEvent : System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Sub WriteEvent (instance As EventInstance, data As Byte(), ParamArray values As Object())
Parametreler
- instance
- EventInstance
EventInstance Yerelleştirilmiş olay günlüğü girişini temsil eden örnek.
- data
- Byte[]
Girişle ilişkili ikili verileri tutan bayt dizisi.
- values
- Object[]
Olay günlüğü girdisinin ileti metniyle birleştirilecek dize dizisi.
- Öznitelikler
Özel durumlar
Source özelliği EventLog ayarlanmadı.
-veya-
yöntemi yeni bir olay kaynağını kaydetmeye çalıştı, ancak içindeki MachineName bilgisayar adı geçerli değil.
-veya-
Kaynak zaten farklı bir olay günlüğü için kayıtlı.
-veya-
instance.InstanceId
sıfırdan küçük veya UInt16.MaxValue değerinden büyük.
-veya-
values
256'dan fazla öğeye sahiptir.
-veya-
Öğelerden values
biri 32766 bayttan uzundur.
-veya-
Kaynak adı, kayıt defteri anahtarı yolunun 254 karakterden uzun olmasına neden olur.
instance
, null
değeridir.
Olay günlüğünün kayıt defteri anahtarı açılamadı.
İşletim sistemi, olay günlüğüne olay girdisi yazarken bir hata bildirdi. Windows hata kodu kullanılamıyor.
Örnekler
Aşağıdaki örnek olay günlüğüne myNewLog
iki denetim girdisi yazar. Örnek, yerel bilgisayarda yoksa yeni bir olay kaynağı ve yeni bir olay günlüğü oluşturur. Olay iletisi metni, kaynak dosyasındaki bir kaynak tanımlayıcısı kullanılarak belirtilir.
// Create the event source if it does not exist.
String^ sourceName = "SampleApplicationSource";
if ( !EventLog::SourceExists( sourceName ) )
{
// Call a local method to register the event log source
// for the event log "myNewLog." Use the resource file
// EventLogMsgs.dll in the current directory for message text.
String^ messageFile = String::Format( "{0}\\{1}", System::Environment::CurrentDirectory, "EventLogMsgs.dll" );
CreateEventSourceSample1( messageFile );
}
// Get the event log corresponding to the existing source.
String^ myLogName = EventLog::LogNameFromSourceName( sourceName, "." );
EventLog^ myEventLog = gcnew EventLog( myLogName,".",sourceName );
// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myAuditSuccessEvent = gcnew EventInstance( AuditSuccessMsgId,0,EventLogEntryType::SuccessAudit );
EventInstance ^ myAuditFailEvent = gcnew EventInstance( AuditFailedMsgId,0,EventLogEntryType::FailureAudit );
// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample1"};
// Write the events to the event log.
myEventLog->WriteEvent( myAuditSuccessEvent, insertStrings );
// Append binary data to the audit failure event entry.
array<Byte>^binaryData = {3,4,5,6};
myEventLog->WriteEvent( myAuditFailEvent, binaryData, insertStrings );
// Create the event source if it does not exist.
string sourceName = "SampleApplicationSource";
if(!EventLog.SourceExists(sourceName))
{
// Call a local method to register the event log source
// for the event log "myNewLog." Use the resource file
// EventLogMsgs.dll in the current directory for message text.
string messageFile = String.Format("{0}\\{1}",
System.Environment.CurrentDirectory,
"EventLogMsgs.dll");
CreateEventSourceSample1(messageFile);
}
// Get the event log corresponding to the existing source.
string myLogName = EventLog.LogNameFromSourceName(sourceName,".");
EventLog myEventLog = new EventLog(myLogName, ".", sourceName);
// Define two audit events.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myAuditSuccessEvent = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit);
EventInstance myAuditFailEvent = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample1"};
// Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings);
// Append binary data to the audit failure event entry.
byte [] binaryData = { 3, 4, 5, 6 };
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings);
Dim sourceName As String = "SampleApplicationSource"
' Create the event source if it does not exist.
If Not EventLog.SourceExists(sourceName)
' Call a local method to register the event log source
' for the event log "myNewLog." Use the resource file
' EventLogMsgs.dll in the current directory for message text.
Dim messageFile As String = String.Format("{0}\\{1}", _
System.Environment.CurrentDirectory, _
"EventLogMsgs.dll")
CreateEventSourceSample1(messageFile)
End If
' Get the event log corresponding to the existing source.
Dim myLogName As String = EventLog.LogNameFromSourceName(sourceName,".")
Dim myEventLog As EventLog = new EventLog(myLogName, ".", sourceName)
' Define two audit events.
Dim myAuditSuccessEvent As EventInstance = new EventInstance(AuditSuccessMsgId, 0, EventLogEntryType.SuccessAudit)
Dim myAuditFailEvent As EventInstance = new EventInstance(AuditFailedMsgId, 0, EventLogEntryType.FailureAudit)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample1"}
' Write the events to the event log.
myEventLog.WriteEvent(myAuditSuccessEvent, insertStrings)
' Append binary data to the audit failure event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
myEventLog.WriteEvent(myAuditFailEvent, binaryData, insertStrings)
Örnek, kaynak kitaplığı EventLogMsgs.dll yerleşik olarak aşağıdaki ileti metin dosyasını kullanır. İleti metin dosyası, ileti kaynak dosyasının oluşturulduğu kaynaktır. İleti metin dosyası, kategori, olay iletisi ve parametre ekleme dizeleri için kaynak tanımlayıcılarını ve metni tanımlar.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Açıklamalar
Olay günlüğüne olaya özgü ek verilerle yerelleştirilmiş bir giriş yazmak için bu yöntemi kullanın. Olay özelliklerini dize değerleri yerine kaynak tanımlayıcılarıyla belirtirsiniz. Olay Görüntüleyicisi, için yerelleştirilmiş kaynak dosyasından karşılık gelen dizeleri görüntülemek için kaynak tanımlayıcılarını Sourcekullanır. Kaynak tanımlayıcılarını kullanarak olayları yazmadan önce kaynağı ilgili kaynak dosyasına kaydetmeniz gerekir.
Giriş instance
örneği olay iletisini ve özelliklerini belirtir. InstanceIdinstance
Kaynak ileti kaynak dosyasında tanımlı ileti için girişi ayarlayın. İsteğe bağlı olarak, olay girdinizin kategorisini CategoryId ve olay türünü tanımlamak için girişin ve EntryTypeinstance
değerini ayarlayabilirsiniz. Ayrıca, yerelleştirilmiş ileti metnine eklenecek dilden bağımsız dizeler dizisi de belirtebilirsiniz. null
Olay iletisi, değiştirme dizeleri için biçimlendirme yer tutucuları içermiyorsa olarak ayarlayınvalues
.
Olay için ek ayrıntıların sağlanması gerektiğinde bir olayla ikili verileri belirtin. Örneğin, belirli bir hatayla data
ilgili bilgileri eklemek için parametresini kullanın. Olay Görüntüleyicisi ilişkili olay verilerini yorumlamaz; verileri birleştirilmiş onaltılık ve metin biçiminde görüntüler. Olaya özgü verileri tedbirli kullanın; yalnızca yararlı olduğundan eminseniz ekleyin. Uygulamanın Olay Görüntüleyicisi bağımsız olarak işleyebileceği bilgileri depolamak için olaya özgü verileri de kullanabilirsiniz. Örneğin, olaylarınız için özel olarak bir görüntüleyici yazabilir veya olay günlüğünü tarayan ve olaya özgü verilerden bilgiler içeren raporlar oluşturan bir program yazabilirsiniz.
kullanmadan WriteEventönce bileşeninizde EventLog özelliğini ayarlamanız Source gerekir. Belirtilen kaynak, günlüğe yerelleştirilmiş girdiler yazmak için yapılandırılmalıdır; kaynağında en azından tanımlanmış bir ileti kaynak dosyası olmalıdır.
Kaynakla ilk girdiyi yazmadan önce olay kaynağını oluşturmanız ve yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını İçerik Oluşturucu. Bu, işletim sisteminin kayıtlı olay kaynakları listesini ve bunların yapılandırmasını yenilemesine izin verir. İşletim sistemi olay kaynakları listesini yenilemediyse ve yeni kaynakla bir olay yazmaya çalışırsanız, yazma işlemi başarısız olur. kullanarak veya yöntemini kullanarak CreateEventSource yeni bir EventLogInstallerkaynak yapılandırabilirsiniz. Yeni bir olay kaynağı oluşturmak için bilgisayarda yönetici haklarına sahip olmanız gerekir.
Not
çağrısı WriteEventyapmadan önce örneğin için EventLog bir MachineName belirtmezseniz, yerel bilgisayar (".") varsayılır.
Kaynak, yerelleştirilmiş girdiler yazmak veya doğrudan dizeler yazmak için yapılandırılmalıdır. WriteEntry Uygulamanız dize değerlerini doğrudan olay günlüğüne yazıyorsa yöntemini kullanın.
Uygulamanız hem kaynak tanımlayıcılarını hem de dize değerlerini kullanarak girdi yazıyorsa, iki ayrı kaynağı kaydetmeniz gerekir. Örneğin, kaynak dosyalarıyla bir kaynak yapılandırın ve ardından olay günlüğüne kaynak tanımlayıcılarını kullanarak girdi yazmak için yönteminde bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak dizeleri doğrudan olay günlüğüne yazmak için yönteminde WriteEntry kullanın.
Not
Uzak bilgisayara bir girdi yazarsanız, uzak bilgisayar .NET Framework çalıştırmıyorsa dizenin değeri message
beklediğiniz gibi olmayabilir. Ayrıca, message
olay görüntüleyicisi bunu bir ekleme dizesi olarak değerlendirdiğinden, dize %n öğesini içeremez; burada n bir tamsayı değeridir (örneğin, %1). Bir İnternet Protokolü, sürüm 6 (IPv6) adresi bu karakter dizisini içerebileceğinden, IPv6 adresi içeren bir olay iletisini günlüğe kaydedemezsiniz.
Ayrıca bkz.
Şunlara uygulanır
WriteEvent(String, EventInstance, Byte[], Object[])
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
- Kaynak:
- EventLog.cs
Belirtilen olay verilerini, ileti değiştirme dizelerini ve ilişkili ikili verileri içeren ve belirtilen kayıtlı olay kaynağını kullanarak bir olay günlüğü girişi yazar.
public:
static void WriteEvent(System::String ^ source, System::Diagnostics::EventInstance ^ instance, cli::array <System::Byte> ^ data, ... cli::array <System::Object ^> ^ values);
public static void WriteEvent (string source, System.Diagnostics.EventInstance instance, byte[] data, params object[] values);
static member WriteEvent : string * System.Diagnostics.EventInstance * byte[] * obj[] -> unit
Public Shared Sub WriteEvent (source As String, instance As EventInstance, data As Byte(), ParamArray values As Object())
Parametreler
- source
- String
Belirtilen bilgisayardaki uygulama için kaydedilen olay kaynağının adı.
- instance
- EventInstance
EventInstance Yerelleştirilmiş olay günlüğü girişini temsil eden örnek.
- data
- Byte[]
Girişle ilişkili ikili verileri tutan bayt dizisi.
- values
- Object[]
Olay günlüğü girdisinin ileti metniyle birleştirilecek dize dizisi.
Özel durumlar
source
Değer boş bir dizedir ("").
-veya-
source
değeri null
olur.
-veya-
instance.InstanceId
sıfırdan küçük veya UInt16.MaxValue değerinden büyük.
-veya-
values
256'dan fazla öğeye sahiptir.
-veya-
Öğelerden values
biri 32766 bayttan uzundur.
-veya-
Kaynak adı, kayıt defteri anahtarı yolunun 254 karakterden uzun olmasına neden olur.
instance
, null
değeridir.
Olay günlüğünün kayıt defteri anahtarı açılamadı.
İşletim sistemi, olay günlüğüne olay girdisi yazarken bir hata bildirdi. Windows hata kodu kullanılamıyor.
Örnekler
Aşağıdaki örnek, var olan bir olay günlüğüne bilgilendiren bir olay girişi ve bir uyarı olayı girişi yazar. Olay iletisi metni, kaynak dosyasındaki bir kaynak tanımlayıcısı kullanılarak belirtilir. Örnekte ilgili kaynak dosyasının kaynak için kaydedildiği varsayılır.
String^ sourceName = "SampleApplicationSource";
if ( EventLog::SourceExists( sourceName ) )
{
// Define an informational event and a warning event.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance ^ myInfoEvent = gcnew EventInstance( InformationMsgId,0,EventLogEntryType::Information );
EventInstance ^ myWarningEvent = gcnew EventInstance( WarningMsgId,0,EventLogEntryType::Warning );
// Insert the method name into the event log message.
array<String^>^insertStrings = {"EventLogSamples.WriteEventSample2"};
// Write the events to the event log.
EventLog::WriteEvent( sourceName, myInfoEvent, 0 );
// Append binary data to the warning event entry.
array<Byte>^binaryData = {7,8,9,10};
EventLog::WriteEvent( sourceName, myWarningEvent, binaryData, insertStrings );
}
else
{
Console::WriteLine( "Warning - event source {0} not registered", sourceName );
}
string sourceName = "SampleApplicationSource";
if(EventLog.SourceExists(sourceName))
{
// Define an informational event and a warning event.
// The message identifiers correspond to the message text in the
// message resource file defined for the source.
EventInstance myInfoEvent = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information);
EventInstance myWarningEvent = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning);
// Insert the method name into the event log message.
string [] insertStrings = {"EventLogSamples.WriteEventSample2"};
// Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent);
// Append binary data to the warning event entry.
byte [] binaryData = { 7, 8, 9, 10 };
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings);
}
else
{
Console.WriteLine("Warning - event source {0} not registered",
sourceName);
}
Dim sourceName As String = "SampleApplicationSource"
If EventLog.SourceExists(sourceName)
' Define an informational event and a warning event.
' The message identifiers correspond to the message text in the
' message resource file defined for the source.
Dim myInfoEvent As EventInstance = new EventInstance(InformationMsgId, 0, EventLogEntryType.Information)
Dim myWarningEvent As EventInstance = new EventInstance(WarningMsgId, 0, EventLogEntryType.Warning)
' Insert the method name into the event log message.
Dim insertStrings() As String = {"EventLogSamples.WriteEventSample2"}
' Write the events to the event log.
EventLog.WriteEvent(sourceName, myInfoEvent, insertStrings)
' Append binary data to the warning event entry.
Dim binaryData() As Byte = { 7, 8, 9, 10 }
EventLog.WriteEvent(sourceName, myWarningEvent, binaryData, insertStrings)
Else
Console.WriteLine("Warning - event source {0} not registered", _
sourceName)
End If
Örnek, kaynak kitaplığı EventLogMsgs.dll yerleşik olarak aşağıdaki ileti metin dosyasını kullanır. İleti metin dosyası, ileti kaynak dosyasının oluşturulduğu kaynaktır. İleti metin dosyası, kategori, olay iletisi ve parametre ekleme dizeleri için kaynak tanımlayıcılarını ve metni tanımlar.
; // EventLogMsgs.mc
; // ********************************************************
; // Use the following commands to build this file:
; // mc -s EventLogMsgs.mc
; // rc EventLogMsgs.rc
; // link /DLL /SUBSYSTEM:WINDOWS /NOENTRY /MACHINE:x86 EventLogMsgs.Res
; // ********************************************************
; // - Event categories -
; // Categories must be numbered consecutively starting at 1.
; // ********************************************************
MessageId=0x1
Severity=Success
SymbolicName=INSTALL_CATEGORY
Language=English
Installation
.
MessageId=0x2
Severity=Success
SymbolicName=QUERY_CATEGORY
Language=English
Database Query
.
MessageId=0x3
Severity=Success
SymbolicName=REFRESH_CATEGORY
Language=English
Data Refresh
.
; // - Event messages -
; // *********************************
MessageId = 1000
Severity = Success
Facility = Application
SymbolicName = AUDIT_SUCCESS_MESSAGE_ID_1000
Language=English
My application message text, in English, for message id 1000, called from %1.
.
MessageId = 1001
Severity = Warning
Facility = Application
SymbolicName = AUDIT_FAILED_MESSAGE_ID_1001
Language=English
My application message text, in English, for message id 1001, called from %1.
.
MessageId = 1002
Severity = Success
Facility = Application
SymbolicName = GENERIC_INFO_MESSAGE_ID_1002
Language=English
My generic information message in English, for message id 1002.
.
MessageId = 1003
Severity = Warning
Facility = Application
SymbolicName = GENERIC_WARNING_MESSAGE_ID_1003
Language=English
My generic warning message in English, for message id 1003, called from %1.
.
MessageId = 1004
Severity = Success
Facility = Application
SymbolicName = UPDATE_CYCLE_COMPLETE_MESSAGE_ID_1004
Language=English
The update cycle is complete for %%5002.
.
MessageId = 1005
Severity = Warning
Facility = Application
SymbolicName = SERVER_CONNECTION_DOWN_MESSAGE_ID_1005
Language=English
The refresh operation did not complete because the connection to server %1 could not be established.
.
; // - Event log display name -
; // ********************************************************
MessageId = 5001
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_DISPLAY_NAME_MSGID
Language=English
Sample Event Log
.
; // - Event message parameters -
; // Language independent insertion strings
; // ********************************************************
MessageId = 5002
Severity = Success
Facility = Application
SymbolicName = EVENT_LOG_SERVICE_NAME_MSGID
Language=English
SVC_UPDATE.EXE
.
Açıklamalar
Uygun günlük için zaten olay kaynağı olarak kaydedilmiş bir kaynak kullanarak olay günlüğüne olaya özgü ek verilerle yerelleştirilmiş bir giriş yazmak için bu yöntemi kullanın. Olay özelliklerini dize değerleri yerine kaynak tanımlayıcılarıyla belirtirsiniz. Olay Görüntüleyicisi, kaynağın yerelleştirilmiş kaynak dosyasından karşılık gelen dizeleri görüntülemek için kaynak tanımlayıcılarını kullanır. Kaynak tanımlayıcılarını kullanarak olayları yazmadan önce kaynağı ilgili kaynak dosyasına kaydetmeniz gerekir.
Giriş instance
örneği olay iletisini ve özelliklerini belirtir. InstanceIdinstance
Kaynak ileti kaynak dosyasında tanımlı ileti için girişi ayarlayın. İsteğe bağlı olarak, olay girdinizin kategorisini CategoryId ve olay türünü tanımlamak için girişin ve EntryTypeinstance
değerini ayarlayabilirsiniz. Ayrıca, yerelleştirilmiş ileti metnine eklenecek dilden bağımsız dizeler dizisi de belirtebilirsiniz. null
Olay iletisi, değiştirme dizeleri için biçimlendirme yer tutucuları içermiyorsa olarak ayarlayınvalues
.
Olay için ek ayrıntıların sağlanması gerektiğinde bir olayla ikili verileri belirtin. Örneğin, belirli bir hatayla data
ilgili bilgileri eklemek için parametresini kullanın. Olay Görüntüleyicisi ilişkili olay verilerini yorumlamaz; verileri birleştirilmiş onaltılık ve metin biçiminde görüntüler. Olaya özgü verileri tedbirli kullanın; yalnızca yararlı olduğundan eminseniz ekleyin. Uygulamanın Olay Görüntüleyicisi bağımsız olarak işleyebileceği bilgileri depolamak için olaya özgü verileri de kullanabilirsiniz. Örneğin, olaylarınız için özel olarak bir görüntüleyici yazabilir veya olay günlüğünü tarayan ve olaya özgü verilerden bilgiler içeren raporlar oluşturan bir program yazabilirsiniz.
Kullanmadan önce WriteEventbelirtilen kaynağın bir olay günlüğü için kaydedilmesi gerekir. Belirtilen kaynak, günlüğe yerelleştirilmiş girdiler yazmak için yapılandırılmalıdır; kaynağında en azından tanımlanmış bir ileti kaynak dosyası olmalıdır.
Kaynakla ilk girdiyi yazmadan önce olay kaynağını oluşturmanız ve yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını İçerik Oluşturucu. Bu, işletim sisteminin kayıtlı olay kaynakları listesini ve bunların yapılandırmasını yenilemesine izin verir. İşletim sistemi olay kaynakları listesini yenilemediyse ve yeni kaynakla bir olay yazmaya çalışırsanız, yazma işlemi başarısız olur. kullanarak veya yöntemini kullanarak CreateEventSource yeni bir EventLogInstallerkaynak yapılandırabilirsiniz. Yeni bir olay kaynağı oluşturmak için bilgisayarda yönetici haklarına sahip olmanız gerekir.
Kaynak, yerelleştirilmiş girdiler yazmak veya doğrudan dizeler yazmak için yapılandırılmalıdır. WriteEntry Uygulamanız dize değerlerini doğrudan olay günlüğüne yazıyorsa yöntemini kullanın.
Uygulamanız hem kaynak tanımlayıcılarını hem de dize değerlerini kullanarak girdi yazıyorsa, iki ayrı kaynağı kaydetmeniz gerekir. Örneğin, kaynak dosyalarıyla bir kaynak yapılandırın ve ardından olay günlüğüne kaynak tanımlayıcılarını kullanarak girdi yazmak için yönteminde bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak dizeleri doğrudan olay günlüğüne yazmak için yönteminde WriteEntry kullanın.