다음을 통해 공유


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개만 사용할 수 있습니다. 이벤트의 최대 데이터 크기는 64KB에서 이벤트 헤더의 크기를 뺀 값으로 제한됩니다. 세션의 버퍼 크기가 더 작고 세션에 이벤트로 확장된 데이터 항목이 포함되어 있는 경우 이벤트 크기도 더 작습니다.

이 매개 변수는 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 호출하여 이벤트에 대한 활동 식별자를 지정하는 경우 이 메서드는 스레드 컨텍스트에서 식별자를 검색하고 이벤트와 함께 포함합니다.

최대 문자열 길이는 이벤트 헤더의 크기를 뺀 64KB로 제한됩니다. 세션의 버퍼 크기가 더 작고 세션에 이벤트로 확장된 데이터 항목이 포함되어 있는 경우 이벤트 크기도 더 작습니다.

적용 대상

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 매개 변수가 가리키는 이벤트 데이터의 크기입니다. 이벤트 데이터의 최대 크기는 64KB에서 이벤트 헤더의 크기를 뺀 값으로 제한됩니다. 세션의 버퍼 크기가 더 작고 세션에 이벤트로 확장된 데이터 항목이 포함되어 있는 경우 이벤트 크기도 더 작습니다.

data
IntPtr

nativeint

작성할 이벤트 데이터에 대한 포인터입니다.

반환

이벤트가 작성되었으면 true이고, 그렇지 않으면 false입니다. false인 경우 GetLastWriteEventError() 메서드를 호출하여 실패한 원인을 확인할 수 있습니다.

특성

설명

메서드를 SetActivityId 호출하여 이벤트에 대한 활동 식별자를 지정하는 경우 이 메서드는 스레드 컨텍스트에서 식별자를 검색하고 이벤트와 함께 포함합니다.

적용 대상