Aracılığıyla paylaş


EventLog.WriteEvent Yöntem

Tanım

Olay günlüğüne yerelleştirilmiş bir olay girdisi yazar.

Aşırı Yüklemeler

Name Description
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 girdi yazar.

WriteEvent(EventInstance, Byte[], Object[])

Verilen olay verileri, ileti değiştirme dizeleri ve ilişkili ikili verileri içeren bir olay günlüğü girdisi yazar.

WriteEvent(String, EventInstance, Byte[], Object[])

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üğü girdisi yazar.

WriteEvent(String, EventInstance, Object[])

Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
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

Değer source boş bir dizedir ("").

-veya-

source değeridirnull.

-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'e eşittir.

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 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 = 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, EventLogMsgs.dllkaynak kitaplığında yerleşik olarak bulunan 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, kaynak tanımlayıcılarını kullanarak kaynak için yerelleştirilmiş kaynak dosyasından karşılık gelen dizeleri görüntüler. 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. InstanceId instance Kaynak ileti kaynak dosyasında tanımlı iletinin girişini 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.

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şturup yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını oluşturun. 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. bir 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ı 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 bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak doğrudan olay günlüğüne dize yazmak için yönteminde WriteEntry kullanın.

Ayrıca bkz.

Şunlara uygulanır

WriteEvent(EventInstance, Object[])

Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs

Olay günlüğüne yerelleştirilmiş bir girdi 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 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'e eşittir.

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 = 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, EventLogMsgs.dllkaynak kitaplığında yerleşik olarak bulunan 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. InstanceId instance Kaynak ileti kaynak dosyasında tanımlı iletinin girişini 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.

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şturup yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını oluşturun. 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. bir 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ı 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 bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak doğrudan olay günlüğüne dize yazmak için yönteminde WriteEntry kullanın.

Uyarı

Uzak bilgisayara bir girdi yazarsanız, uzak bilgisayar .NET çalıştırmıyorsa dizenin değeri message beklediğiniz gibi olmayabilir. Ayrıca, message dize n %içeremez ; buradan bir tamsayı değeridir (örneğin, %1), çünkü olay görüntüleyici bunu ekleme dizesi olarak değerlendirir. İ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
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs

Verilen olay verileri, ileti değiştirme dizeleri 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ğı 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'e eşittir.

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 = 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, EventLogMsgs.dllkaynak kitaplığında yerleşik olarak bulunan 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. InstanceId instance Kaynak ileti kaynak dosyasında tanımlı iletinin girişini 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 sağlanması gerektiğinde bir olayla ikili verileri belirtin. Örneğin, belirli bir hatayla ilgili bilgileri eklemek için parametresini data 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. Ayrıca, uygulamanın olay görüntüleyiciden 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şturup yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını oluşturun. 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. bir 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.

Uyarı

çağrısından WriteEventö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ı 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 bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak doğrudan olay günlüğüne dize yazmak için yönteminde WriteEntry kullanın.

Uyarı

Uzak bilgisayara bir girdi yazarsanız, uzak bilgisayar .NET Framework'ün çalışmaması durumunda dizenin değeri message beklediğiniz gibi olmayabilir. Ayrıca, message dize n %içeremez ; buradan bir tamsayı değeridir (örneğin, %1), çünkü olay görüntüleyici bunu ekleme dizesi olarak değerlendirir. İ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
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
Kaynak:
EventLog.cs
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üğü girdisi 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 bilgisayarda 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

Değer source boş bir dizedir ("").

-veya-

source değeridirnull.

-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'e eşittir.

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 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 = 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, EventLogMsgs.dllkaynak kitaplığında yerleşik olarak bulunan 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, kaynak tanımlayıcılarını kullanarak kaynak için yerelleştirilmiş kaynak dosyasından karşılık gelen dizeleri görüntüler. 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. InstanceId instance Kaynak ileti kaynak dosyasında tanımlı iletinin girişini 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 sağlanması gerektiğinde bir olayla ikili verileri belirtin. Örneğin, belirli bir hatayla ilgili bilgileri eklemek için parametresini data 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. Ayrıca, uygulamanın olay görüntüleyiciden 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şturup yapılandırmanız gerekir. Uygulamanızın yüklenmesi sırasında yeni olay kaynağını oluşturun. 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. bir 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ı 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 bu kaynağı WriteEvent kullanın. Ardından kaynak dosyaları olmadan farklı bir kaynak oluşturun ve bu kaynağı kullanarak doğrudan olay günlüğüne dize yazmak için yönteminde WriteEntry kullanın.

Ayrıca bkz.

Şunlara uygulanır