EventProvider.WriteEvent 메서드

정의

이벤트를 씁니다.Writes an event.

오버로드

WriteEvent(EventDescriptor, Object[])

이벤트를 씁니다.Writes an event. 이벤트 데이터는 개체 배열로 지정됩니다.The event data is specified as an array of objects.

WriteEvent(EventDescriptor, String)

이벤트를 씁니다.Writes an event. 이벤트 데이터는 문자열로 지정됩니다.The event data is specified as a string.

WriteEvent(EventDescriptor, Int32, IntPtr)

이벤트를 씁니다.Writes an event. 이벤트 데이터는 메모리 블록으로 지정됩니다.The event data is specified as a block of memory.

설명

매니페스트를 사용 하 여 이벤트를 정의 하는 경우 이러한 메서드를 사용 합니다.Use these methods if you use a manifest to define your events.

WriteEvent(EventDescriptor, Object[])

이벤트를 씁니다.Writes an event. 이벤트 데이터는 개체 배열로 지정됩니다.The event data is specified as an array of objects.

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);
member this.WriteEvent : EventDescriptor * obj[] -> bool
Public Function WriteEvent (ByRef eventDescriptor As EventDescriptor, ParamArray eventPayload As Object()) As Boolean

매개 변수

eventDescriptor
EventDescriptor

작성할 이벤트를 식별하는 EventDescriptor의 인스턴스입니다.An instance of EventDescriptor that identifies the event to write.

eventPayload
Object[]

작성할 이벤트 데이터가 들어 있는 개체 배열입니다.An array of objects that contain the event data to write. 개체는 매니페스트에 지정된 순서대로 배치되어야 합니다.The object must be in the order specified in the manifest. 배열의 최대 크기는 32개체이며, 이 중 문자열은 최대 8개만 사용할 수 있습니다.The array is limited to 32 objects, of which only eight may be strings. 이벤트의 최대 데이터 크기는 64KB에서 이벤트 헤더의 크기를 뺀 값으로 제한됩니다.The maximum data size for the event is limited to 64 KB minus the size of the event headers. 세션의 버퍼 크기가 더 작고 세션에 이벤트로 확장된 데이터 항목이 포함되어 있는 경우 이벤트 크기도 더 작습니다.The event size is less if the session's buffer size is less and the session includes extended data items with the event.

이 매개 변수는 null일 수 있습니다.This parameter can be null.

반환

이벤트가 작성되었으면 true이고, 그렇지 않으면 false입니다.Is true if the event is written; otherwise, false. false인 경우 GetLastWriteEventError() 메서드를 호출하여 실패한 원인을 확인할 수 있습니다.If false, call the GetLastWriteEventError() method to determine the cause of the failure.

특성

예외

eventPayload 매개 변수에 너무 많은 개체나 문자열이 포함된 경우The eventPayload parameter contains too many objects or strings.

예제

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 이벤트의 경우이 메서드는 활동 식별자를 지정 하는 메서드는 스레드 컨텍스트에서 식별자를 검색 하 고 이벤트를 사용 하 여 포함 합니다.If you call the SetActivityId method to specify an activity identifier for the event, this method retrieves the identifier from the thread context and includes it with the event.

메서드는 개체의 값을 씁니다 개체 유형이 지원 되지 않으면 Object.ToString 페이로드에서 메서드.If the object type is not supported, the method writes the value of the object's Object.ToString method in the payload. 목록은 지원 되는 개체 형식에 대 한 설명을 참조는 EventProvider 클래스입니다.For a list of supported object types, see the Remarks for the EventProvider class.

WriteEvent(EventDescriptor, String)

이벤트를 씁니다.Writes an event. 이벤트 데이터는 문자열로 지정됩니다.The event data is specified as a 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);
member this.WriteEvent : EventDescriptor * string -> bool
Public Function WriteEvent (ByRef eventDescriptor As EventDescriptor, data As String) As Boolean

매개 변수

eventDescriptor
EventDescriptor

작성할 이벤트를 식별하는 EventDescriptor의 인스턴스입니다.An instance of EventDescriptor that identifies the event to write.

data
String

이벤트 데이터로 쓸 문자열입니다.The string to write as the event data.

반환

이벤트가 작성되었으면 true이고, 그렇지 않으면 false입니다.Is true if the event is written; otherwise, false. false인 경우 GetLastWriteEventError() 메서드를 호출하여 실패한 원인을 확인할 수 있습니다.If false, call the GetLastWriteEventError() method to determine the cause of the failure.

특성

예외

datanull인 경우입니다.If data is 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 이벤트의 경우이 메서드는 활동 식별자를 지정 하는 메서드는 스레드 컨텍스트에서 식별자를 검색 하 고 이벤트를 사용 하 여 포함 합니다.If you call the SetActivityId method to specify an activity identifier for the event, this method retrieves the identifier from the thread context and includes it with the event.

최대 문자열 길이 이벤트 헤더의 크기를 뺀 값 64KB로 제한 됩니다.The maximum string length is limited to 64 KB minus the size of the event headers. 세션의 버퍼 크기가 더 작고 세션에 이벤트로 확장된 데이터 항목이 포함되어 있는 경우 이벤트 크기도 더 작습니다.The event size is less if the session's buffer size is less and the session includes extended data items with the event.

WriteEvent(EventDescriptor, Int32, IntPtr)

이벤트를 씁니다.Writes an event. 이벤트 데이터는 메모리 블록으로 지정됩니다.The event data is specified as a block of memory.

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);
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의 인스턴스입니다.An instance of EventDescriptor that identifies the event to write.

dataCount
Int32

data 매개 변수가 가리키는 이벤트 데이터의 크기입니다.Size of the event data to which the data parameter points. 이벤트 데이터의 최대 크기는 64KB에서 이벤트 헤더의 크기를 뺀 값으로 제한됩니다.The maximum event data size is limited to 64 KB minus the size of the event headers. 세션의 버퍼 크기가 더 작고 세션에 이벤트로 확장된 데이터 항목이 포함되어 있는 경우 이벤트 크기도 더 작습니다.The event size is less if the session's buffer size is less and the session includes extended data items with the event.

data
IntPtr

작성할 이벤트 데이터에 대한 포인터입니다.Pointer to the event data to write.

반환

이벤트가 작성되었으면 true이고, 그렇지 않으면 false입니다.Is true if the event is written; otherwise, false. false인 경우 GetLastWriteEventError() 메서드를 호출하여 실패한 원인을 확인할 수 있습니다.If false, call the GetLastWriteEventError() method to determine the cause of the failure.

특성

설명

호출 하는 경우는 SetActivityId 이벤트의 경우이 메서드는 활동 식별자를 지정 하는 메서드는 스레드 컨텍스트에서 식별자를 검색 하 고 이벤트를 사용 하 여 포함 합니다.If you call the SetActivityId method to specify an activity identifier for the event, this method retrieves the identifier from the thread context and includes it with the event.

적용 대상