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 КБ за вычетом размера заголовков события. Размер события может быть меньше, если меньше размер буфера сеанса и сеанс включает вместе c событием расширенные элементы данных.
Этот параметр может быть нулевым.
Возвращаемое значение
Значение true
, если событие записано, в противном случае — 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
. Если событие не записано, для определения причины сбоя можно использовать метод 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 КБ за вычетом размера заголовков событий. Размер события может быть меньше, если меньше размер буфера сеанса и сеанс включает вместе c событием расширенные элементы данных.
Применяется к
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 КБ за вычетом размера заголовков события. Размер события может быть меньше, если меньше размер буфера сеанса и сеанс включает вместе c событием расширенные элементы данных.
- data
-
IntPtr
nativeint
Указатель на данные события для записи.
Возвращаемое значение
Значение true
, если событие записано, в противном случае — false
. Если событие не записано, для определения причины сбоя можно использовать метод GetLastWriteEventError().
- Атрибуты
Комментарии
При вызове SetActivityId метода для указания идентификатора действия для события этот метод извлекает идентификатор из контекста потока и включает его в событие .