LoggingEventSource 클래스

정의

LoggingEventSource는 모든 ILogger 기반 로깅과 EventSource/EventListener 로깅을 연결하는 브리지입니다.

public ref class LoggingEventSource sealed : System::Diagnostics::Tracing::EventSource
[System.Diagnostics.Tracing.EventSource(Name="Microsoft-Extensions-Logging")]
public sealed class LoggingEventSource : System.Diagnostics.Tracing.EventSource
[<System.Diagnostics.Tracing.EventSource(Name="Microsoft-Extensions-Logging")>]
type LoggingEventSource = class
    inherit EventSource
Public NotInheritable Class LoggingEventSource
Inherits EventSource
상속
LoggingEventSource
특성

예제

다음 예제에서는 EventListener를 사용하여 ILogging 정보를 가져오는 방법을 보여줍니다.

class MyEventListener : EventListener 
{
    protected override void OnEventSourceCreated(EventSource eventSource) 
    {
        if (eventSource.Name == "Microsoft-Extensions-Logging") 
        {
            // initialize a string, string dictionary of arguments to pass to the EventSource.
            // Turn on loggers matching App* to Information, everything else (*) is the default level (which is EventLevel.Error)
            var args = new Dictionary<string, string>() { { "FilterSpecs", "App*:Information;*" } };
            // Set the default level (verbosity) to Error, and only ask for the formatted messages in this case.
            EnableEvents(eventSource, EventLevel.Error, LoggingEventSource.Keywords.FormattedMessage, args);
        }
    }

    protected override void OnEventWritten(EventWrittenEventArgs eventData) 
    {
        // Look for the formatted message event, which has the following argument layout (as defined in the LoggingEventSource.
        // FormattedMessage(LogLevel Level, int FactoryID, string LoggerName, string EventId, string FormattedMessage);
        if (eventData.EventName == "FormattedMessage")
            Console.WriteLine("Logger {0}: {1}", eventData.Payload[2], eventData.Payload[4]);
    }
}

설명

라는 Microsoft-Extensions-LoggingEventSource를 사용하도록 설정하여 이 로깅을 켭니다.

EventSource를 사용하도록 설정하면 설정한 EventLevel이 ILogger와 연결된 수준으로 명확하게 변환됩니다(따라서 Debug = verbose, Informational = Informational ... Critical == Critical)

이렇게 하면 이벤트 수준별로 간단히 필터링할 수 있습니다.

더 세부적인 제어를 위해 이라는 FilterSpecsEventSource 인수를 지정할 수 있습니다.

인수는 FilterSpecs 세미콜론으로 구분된 사양 목록입니다. 여기서 각 사양은 다음과 같습니다.

SPEC =                          // empty spec, same as *
     | NAME                     // Just a name the level is the default level
     | NAME : LEVEL            // specifies level for a particular logger (can have a * suffix).

여기서 Name은 ILogger의 이름입니다(대/소문자). Name에는 와일드카드 AS A 접미사 역할을 하는 *가 있을 수 있습니다. 따라서 Net*은 'Net'으로 시작하는 모든 로거와 일치합니다.

LEVEL은 숫자 또는 LogLevel 문자열입니다. 0=Trace, 1=Debug, 2=Information, 3=Warning, 4=Error, Critical=5 연결된 패턴의 수준을 지정합니다. 숫자를 지정하지 않은 경우 (사양의 첫 번째 양식) EventSource의 기본 수준입니다.

특정 이름이 둘 이상의 패턴과 일치하는 경우 처음 일치하는 항목이 사용됩니다.

level 및 FilterSpec 인수 외에도 EventSource 키워드를 설정할 수도 있습니다. 아래 키워드 정의를 참조하세요. 기본적으로 원하는 경우 직접 결정할 수 있습니다.

  • Keywords.Message - 구문 분석된 형식의 데이터로 이벤트를 가져옵니다.
  • Keywords.JsonMessage - 구문 분석 형식이지만 JSON Blob으로 데이터를 사용하여 이벤트를 가져옵니다(인수로 구분되지 않음...)
  • Keywords.FormattedMessage - 데이터 형식이 문자열인 이벤트를 가져옵니다.

이러한 키워드 중 하나만 한 번에 켜야 하지만 모두 켜고 동일한 데이터를 세 가지 방법으로 기록할 수 있습니다.

속성

ConstructionException

이벤트 소스 생성 중에 throw된 모든 예외를 가져옵니다.

(다음에서 상속됨 EventSource)
Guid

이벤트 소스에 대한 고유 식별자입니다.

(다음에서 상속됨 EventSource)
Name

이벤트 소스에서 파생되는 클래스의 이름입니다.

(다음에서 상속됨 EventSource)
Settings

이 이벤트 소스에 적용된 설정을 가져옵니다.

(다음에서 상속됨 EventSource)

메서드

Dispose()

EventSource 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 EventSource)
Dispose(Boolean)

EventSource 클래스에 사용되는 관리되지 않는 리소스를 해제하고, 필요에 따라 관리되는 리소스를 해제합니다.

(다음에서 상속됨 EventSource)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetTrait(String)

지정한 키와 연결된 특성 값을 가져옵니다.

(다음에서 상속됨 EventSource)
GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
IsEnabled()

현재 이벤트 소스를 사용할 수 있는지 여부를 확인합니다.

(다음에서 상속됨 EventSource)
IsEnabled(EventLevel, EventKeywords)

지정된 수준 및 키워드가 있는 현재 이벤트 소스를 사용할 수 있는지 여부를 확인합니다.

(다음에서 상속됨 EventSource)
IsEnabled(EventLevel, EventKeywords, EventChannel)

지정된 수준, 키워드 및 채널의 이벤트에 현재 이벤트 소스를 사용할 수 있는지 여부를 결정합니다.

(다음에서 상속됨 EventSource)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
OnEventCommand(EventCommandEventArgs)

현재 이벤트 소스가 컨트롤러에 의해 업데이트되면 호출됩니다.

(다음에서 상속됨 EventSource)
ToString()

현재 이벤트 소스 인스턴스에 대한 문자열 표현을 가져옵니다.

(다음에서 상속됨 EventSource)
Write(String)

필드는 없지만 지정된 이름 및 기본 옵션이 있는 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
Write(String, EventSourceOptions)

필드는 없지만 지정된 이름 및 옵션이 있는 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
Write<T>(String, EventSourceOptions, Guid, Guid, T)

지정된 이름, 옵션, 관련 활동 및 이벤트 데이터가 있는 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
Write<T>(String, EventSourceOptions, T)

지정된 이름, 이벤트 데이터 및 옵션이 있는 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
Write<T>(String, EventSourceOptions, T)

지정된 이름, 옵션 및 이벤트 데이터가 있는 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
Write<T>(String, T)

지정된 이름과 데이터가 있는 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32)

제공된 이벤트 식별자를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Byte[])

제공된 이벤트 식별자와 바이트 배열 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, EventSource+EventSourcePrimitive[])

제공된 이벤트 식별자와 이벤트 원본 기본 형식의 가변 수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int32)

제공된 이벤트 식별자와 32비트 정수 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int32, Int32)

제공된 이벤트 식별자와 32비트 정수 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int32, Int32, Int32)

제공된 이벤트 식별자와 32비트 정수 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int32, String)

제공된 이벤트 식별자와 32비트 정수 및 문자열 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int64)

제공된 이벤트 식별자와 64비트 정수 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int64, Byte[])

지정된 식별자 및 64비트 정수와 바이트 배열 인수를 사용하여 이벤트 데이터를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int64, Int64)

제공된 이벤트 식별자와 64비트 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int64, Int64, Int64)

제공된 이벤트 식별자와 64비트 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Int64, String)

제공된 이벤트 식별자와 64비트 정수 및 문자열 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, Object[])

제공된 이벤트 식별자와 인수 배열을 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, String)

제공된 이벤트 식별자와 문자열 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, String, Int32)

제공된 이벤트 식별자와 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, String, Int32, Int32)

제공된 이벤트 식별자와 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, String, Int64)

제공된 이벤트 식별자와 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, String, String)

제공된 이벤트 식별자와 문자열 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEvent(Int32, String, String, String)

제공된 이벤트 식별자와 문자열 인수를 사용하여 이벤트를 씁니다.

(다음에서 상속됨 EventSource)
WriteEventCore(Int32, Int32, EventSource+EventData*)

제공된 이벤트 식별자 및 이벤트 데이터를 사용하여 새 WriteEvent 오버로드를 만듭니다.

(다음에서 상속됨 EventSource)
WriteEventWithRelatedActivityId(Int32, Guid, Object[])

현재 작업이 다른 작업과 연관되어 있음을 나타내는 이벤트를 기록합니다.

(다음에서 상속됨 EventSource)
WriteEventWithRelatedActivityIdCore(Int32, Guid*, Int32, EventSource+EventData*)

현재 작업이 다른 작업과 연관되어 있음을 나타내는 이벤트를 기록합니다.

(다음에서 상속됨 EventSource)

이벤트

EventCommandExecuted

이벤트 수신기에서 명령을 가져올 때 발생합니다.

(다음에서 상속됨 EventSource)

적용 대상