EventProvider.WriteEvent 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
寫入事件。
多載
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() 方法,判斷失敗的原因。
- 屬性
例外狀況
如果 data
為 null
。
範例
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 方法來指定事件的活動標識符,這個方法會從線程內容擷取標識碼,並將它包含在事件中。