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 标识要写入的事件。
- 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 该方法来指定事件的活动标识符,此方法将从线程上下文中检索标识符,并将其包含在事件中。