Aracılığıyla paylaş


EventLog.WriteEvent Yöntem

Tanım

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

Ayrıca bkz.

Şunlara uygulanır