EventProvider.WriteEvent 方法

定義

寫入事件。

多載

WriteEvent(EventDescriptor, Object[])

寫入事件。 事件資料會指定為物件陣列。

WriteEvent(EventDescriptor, String)

寫入事件。 事件資料會指定為字串。

WriteEvent(EventDescriptor, Int32, IntPtr)

寫入事件。 事件資料會指定為記憶體區塊。

備註

如果您使用指令清單來定義事件,請使用這些方法。

WriteEvent(EventDescriptor, Object[])

寫入事件。 事件資料會指定為物件陣列。

public:
 bool WriteEvent(System::Diagnostics::Eventing::EventDescriptor % eventDescriptor, ... cli::array <System::Object ^> ^ eventPayload);
[System.Security.SecurityCritical]
public bool WriteEvent (ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, params object[] eventPayload);
public bool WriteEvent (ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, params object[] eventPayload);
[<System.Security.SecurityCritical>]
member this.WriteEvent : EventDescriptor * obj[] -> bool
member this.WriteEvent : EventDescriptor * obj[] -> bool
Public Function WriteEvent (ByRef eventDescriptor As EventDescriptor, ParamArray eventPayload As Object()) As Boolean

參數

eventDescriptor
EventDescriptor

EventDescriptor 的執行個體 (Instance),其識別要寫入的事件。

eventPayload
Object[]

包含要寫入之事件資料的物件陣列。 物件必須按照資訊清單中指定的順序排列。 此陣列最多只能有 32 個物件,而且其中只能有 8 個字串。 事件資料大小上限為 64 KB 減去事件標頭大小。 如果工作階段的緩衝區大小較小且包含延伸的資料項目與事件,則事件大小較小。

此參數可以是 null。

傳回

如果已寫入事件則為 true,否則為 false。 若為 false,請呼叫 GetLastWriteEventError() 方法,判斷失敗的原因。

屬性

例外狀況

eventPayload 參數包含太多物件或字串。

範例

private static Guid providerId = new Guid("{FB33FDA8-45FB-4df0-8A55-EEB4BA88E7E7}");  

enum Keyword  
{  
    Read = 0x1,  
    Write = 0x2,  
    Local = 0x4,  
    Remote = 0x8  
}  

enum Level  
{  
    Critical = 1,  
    Error,  
    Warning,  
    Information,  
    Verbose  
}  

    EventProvider provider = new EventProvider(providerId);  
    EventDescriptor readEvent;  
    string path = @"<PATHGOESHERE>";  
    UInt64 bytesRead = <ASSIGNVALUE>;  

    if (provider.IsEnabled(Level.Information, (long)Keyword.Read))  
    {  
        unchecked  
        {  
            readEvent = new EventDescriptor(0x1, 0x0, 0x10, 0x4, 0x0, 0x0, (long)0x8000000000000005);  
        }  

        if (!provider.WriteEvent(ref readEvent, new object[] { path, bytesRead }))  
            Console.WriteLine(EventProvider.GetLastWriteEventError());  
    }  

    provider.Close();  

備註

如果您呼叫 SetActivityId 方法來指定事件的活動標識符,這個方法會從線程內容擷取標識碼,並將它包含在事件中。

如果不支持物件類型,方法會在承載中寫入物件的 Object.ToString 方法值。 如需支援的物件類型清單,請參閱 類別的 EventProvider

適用於

WriteEvent(EventDescriptor, String)

寫入事件。 事件資料會指定為字串。

public:
 bool WriteEvent(System::Diagnostics::Eventing::EventDescriptor % eventDescriptor, System::String ^ data);
[System.Security.SecurityCritical]
public bool WriteEvent (ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, string data);
[<System.Security.SecurityCritical>]
member this.WriteEvent : EventDescriptor * string -> bool
Public Function WriteEvent (ByRef eventDescriptor As EventDescriptor, data As String) As Boolean

參數

eventDescriptor
EventDescriptor

EventDescriptor 的執行個體 (Instance),其識別要寫入的事件。

data
String

要寫入為事件資料的字串。

傳回

如果已寫入事件則為 true,否則為 false。 若為 false,請呼叫 GetLastWriteEventError() 方法,判斷失敗的原因。

屬性

例外狀況

如果 datanull

範例

private static Guid providerId = new Guid("{FB33FDA8-45FB-4df0-8A55-EEB4BA88E7E7}");  

EventProvider provider = new EventProvider(providerId);  
EventDescriptor writeEvent;  

if (provider.IsEnabled())  
{  
     unchecked  
     {  
          writeEvent = new EventDescriptor(0x2, 0x0, 0x10, 0x3, 0x0, 0x0, (long)0x8000000000000006);  
     }  

     if (!provider.WriteEvent(ref writeEvent, "Write event."))  
          Console.WriteLine(EventProvider.GetLastWriteEventError());  
}  

provider.Close();  

備註

如果您呼叫 SetActivityId 方法來指定事件的活動標識符,這個方法會從線程內容擷取標識碼,並將它包含在事件中。

最大字串長度限制為 64 KB 減去事件標頭的大小。 如果工作階段的緩衝區大小較小且包含延伸的資料項目與事件,則事件大小較小。

適用於

WriteEvent(EventDescriptor, Int32, IntPtr)

寫入事件。 事件資料會指定為記憶體區塊。

protected:
 bool WriteEvent(System::Diagnostics::Eventing::EventDescriptor % eventDescriptor, int dataCount, IntPtr data);
[System.Security.SecurityCritical]
protected bool WriteEvent (ref System.Diagnostics.Eventing.EventDescriptor eventDescriptor, int dataCount, IntPtr data);
[<System.Security.SecurityCritical>]
member this.WriteEvent : EventDescriptor * int * nativeint -> bool
Protected Function WriteEvent (ByRef eventDescriptor As EventDescriptor, dataCount As Integer, data As IntPtr) As Boolean

參數

eventDescriptor
EventDescriptor

EventDescriptor 的執行個體 (Instance),其識別要寫入的事件。

dataCount
Int32

data 參數所指向之事件資料的大小。 事件資料大小上限為 64 KB 減去事件標頭大小。 如果工作階段的緩衝區大小較小且包含延伸的資料項目與事件,則事件大小較小。

data
IntPtr

nativeint

要寫入之事件資料的指標。

傳回

如果已寫入事件則為 true,否則為 false。 若為 false,請呼叫 GetLastWriteEventError() 方法,判斷失敗的原因。

屬性

備註

如果您呼叫 SetActivityId 方法來指定事件的活動標識符,這個方法會從線程內容擷取標識碼,並將它包含在事件中。

適用於