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 实例。

eventPayload
Object[]

包含要写入的事件数据的对象数组。 该对象必须采用清单中所指定的顺序。 该数组限制为 32 个对象,其中只有八个对象可以是字符串。 事件数据的最大大小限制为 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 实例。

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 实例。

dataCount
Int32

data 参数所指向的事件数据的大小。 事件数据的最大大小限制为 64 KB 减去事件头大小所得的值。 如果会话的缓冲区较小,而且会话中包括事件的扩展数据项,则该事件会较小。

data
IntPtr

nativeint

指向要写入的事件数据的指针。

返回

如果写入此事件,则为 true;否则为 false。 如果为 false,则调用 GetLastWriteEventError() 方法来确定失败的原因。

属性

注解

如果调用 SetActivityId 方法以指定事件的活动标识符,则此方法将从线程上下文中检索标识符,并将其包含在事件中。

适用于