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 个对象,其中只有 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 标识要写入的事件。

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 标识要写入的事件。

dataCount
Int32

参数指向的事件数据 data 的大小。 最大事件数据大小限制为 64 KB,减去事件标头的大小。 如果会话的缓冲区大小较小,并且会话包含事件的扩展数据项,则事件大小会减少。

data
IntPtr

nativeint

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

返回

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

属性

注解

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

适用于