DiagnosticListener.Subscribe 메서드

정의

이 메서드를 사용하면 구독자를 추가할 수 있으며, 그중 일부는 선택적 이벤트 필터링 메서드를 제공합니다.

오버로드

Subscribe(IObserver<KeyValuePair<String,Object>>)

구독자를 추가합니다.

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>)

구독자를 추가하고 필요에 따라 이름과 최대 두 개의 컨텍스트 개체를 기준으로 이벤트를 필터링합니다.

Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)

구독자를 추가하고 필요에 따라 이름을 기준으로 이벤트를 필터링합니다.

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)

구독자를 추가하고, 필요에 따라 이름과 최대 두 개의 컨텍스트 개체를 기준으로 이벤트를 필터링하고, 공급자가 프로세스 외부에서 활동을 가져오거나 내보낼 때 호출할 메서드를 지정합니다.

Subscribe(IObserver<KeyValuePair<String,Object>>)

구독자를 추가합니다.

public:
 virtual IDisposable ^ Subscribe(IObserver<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>> ^ observer);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer);
public IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object))) As IDisposable
Public Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object))) As IDisposable

매개 변수

observer
IObserver<KeyValuePair<String,Object>>

구독자입니다.

반환

DiagnosticSource가 알림 전송을 완료하기 전에 수진자가 알림 수신을 중지할 수 있는 인터페이스에 대한 참조입니다.

구현

적용 대상

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>)

구독자를 추가하고 필요에 따라 이름과 최대 두 개의 컨텍스트 개체를 기준으로 이벤트를 필터링합니다.

public:
 virtual IDisposable ^ Subscribe(IObserver<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>> ^ observer, Func<System::String ^, System::Object ^, System::Object ^, bool> ^ isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer, Func<string,object?,object?,bool>? isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer, Func<string,object,object,bool> isEnabled);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object)), isEnabled As Func(Of String, Object, Object, Boolean)) As IDisposable

매개 변수

observer
IObserver<KeyValuePair<String,Object>>

구독자입니다.

isEnabled
Func<String,Object,Object,Boolean>

이름 및 최대 두 개의 컨텍스트 개체(null일 수 있음)에 따라 이벤트를 필터링하는 대리자이거나 이벤트 필터가 바람직하지 않은 경우 null입니다.

반환

DiagnosticSource가 알림 전송을 완료하기 전에 수진자가 알림 수신을 중지할 수 있는 인터페이스에 대한 참조입니다.

설명

이 아닌 null경우 isEnabled 효율성을 위해 일부 이벤트를 건너뛸 수 있다는 것을 나타냅니다.

특정 계측 사이트에는 이벤트 이름을 전달하는 하나 이상의 IsEnabled 오버로드를 호출하고 최대 두 개의 다른(계측 사이트별) 개체를 인수로 호출할 수 있습니다. 이러한 IsEnabled 호출이 수행되면 이 isEnabled 조건자는 전달된 값으로 호출됩니다(짧은 오버로드를 사용하는 null 경우 누락된 컨텍스트 개체에 대해 전달됨).

이렇게 하면 모든 특정 계측 사이트에서 구독자에게 최대 두 개의 정보를 전달하여 정교하고 효율적인 필터링을 수행할 수 있습니다. 이렇게 하려면 계측 사이트와 구독자 코드 간에 더 많은 결합이 필요합니다.

특정 계측 사이트에서 동일한 이벤트에 대해 다른 오버로드를 IsEnabled 호출할 수 있으며, 먼저 를 호출 IsEnabled(String)하여 두 컨텍스트 null 개체가 있는 필터를 호출할 수 있습니다. 가 를 반환true하면 isEnabled 컨텍스트 개체를 사용하여 를 다시 호출합니다. 필터는 isEnabled 이 점을 염두에 두고 설계해야 합니다.

isEnabled 조건자는 계측 사이트에서 페이로드를 설정하고 구독자가 신경 쓰지 않을 때 호출 Write(String, Object) 하지 않도록 하는 선택적 최적화입니다. 특히 계측 사이트에는 조건자를 무시하고 IsEnabled (호출하지 않음) 단순히 를 호출 Write(String, Object)하는 옵션이 있습니다. 따라서 구독자에 필터링이 필요한 경우 직접 수행해야 합니다.

이 매개 변수가 이null면 필터링이 수행되지 않습니다(반환trueIsEnabled 모든 오버로드).

적용 대상

Subscribe(IObserver<KeyValuePair<String,Object>>, Predicate<String>)

구독자를 추가하고 필요에 따라 이름을 기준으로 이벤트를 필터링합니다.

public:
 virtual IDisposable ^ Subscribe(IObserver<System::Collections::Generic::KeyValuePair<System::String ^, System::Object ^>> ^ observer, Predicate<System::String ^> ^ isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer, Predicate<string>? isEnabled);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer, Predicate<string> isEnabled);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Predicate<string> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Predicate<string> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object)), isEnabled As Predicate(Of String)) As IDisposable

매개 변수

observer
IObserver<KeyValuePair<String,Object>>

구독자입니다.

isEnabled
Predicate<String>

해당 이름(String)에 따라 이벤트를 필터링하는 대리자입니다. 이벤트가 활성화된 경우 대리자는 true를 반환해야 합니다.

반환

DiagnosticSource가 알림 전송을 완료하기 전에 수진자가 알림 수신을 중지할 수 있는 인터페이스에 대한 참조입니다.

설명

이 아닌 null경우 isEnabled 일부 이벤트는 관심이 없으며 효율성을 위해 건너뛸 수 있습니다. 조건자는 isEnabled 계측 사이트에서 페이로드를 설정하고 구독자가 신경 쓰지 않을 때 호출 Write(String, Object) 하지 않도록 하는 선택적 최적화입니다. 특히 계측 사이트에는 조건자를 무시하고 IsEnabled() (호출하지 않음) 단순히 를 호출 Write(String, Object)하는 옵션이 있습니다. 따라서 구독자에 필터링이 필요한 경우 직접 수행해야 합니다.

이 이nullisEnabled 필터링이 수행되지 않습니다(반환trueIsEnabled 모든 오버로드).

적용 대상

Subscribe(IObserver<KeyValuePair<String,Object>>, Func<String,Object,Object,Boolean>, Action<Activity,Object>, Action<Activity,Object>)

구독자를 추가하고, 필요에 따라 이름과 최대 두 개의 컨텍스트 개체를 기준으로 이벤트를 필터링하고, 공급자가 프로세스 외부에서 활동을 가져오거나 내보낼 때 호출할 메서드를 지정합니다.

public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object?>> observer, Func<string,object?,object?,bool>? isEnabled, Action<System.Diagnostics.Activity,object?>? onActivityImport = default, Action<System.Diagnostics.Activity,object?>? onActivityExport = default);
public virtual IDisposable Subscribe (IObserver<System.Collections.Generic.KeyValuePair<string,object>> observer, Func<string,object,object,bool> isEnabled, Action<System.Diagnostics.Activity,object> onActivityImport = default, Action<System.Diagnostics.Activity,object> onActivityExport = default);
abstract member Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> * Action<System.Diagnostics.Activity, obj> * Action<System.Diagnostics.Activity, obj> -> IDisposable
override this.Subscribe : IObserver<System.Collections.Generic.KeyValuePair<string, obj>> * Func<string, obj, obj, bool> * Action<System.Diagnostics.Activity, obj> * Action<System.Diagnostics.Activity, obj> -> IDisposable
Public Overridable Function Subscribe (observer As IObserver(Of KeyValuePair(Of String, Object)), isEnabled As Func(Of String, Object, Object, Boolean), Optional onActivityImport As Action(Of Activity, Object) = Nothing, Optional onActivityExport As Action(Of Activity, Object) = Nothing) As IDisposable

매개 변수

observer
IObserver<KeyValuePair<String,Object>>

구독자입니다.

isEnabled
Func<String,Object,Object,Boolean>

이름 및 최대 두 개의 컨텍스트 개체(null일 수 있음)에 따라 이벤트를 필터링하는 대리자이거나 이벤트 필터가 바람직하지 않은 경우 null입니다.

onActivityImport
Action<Activity,Object>

들어오는 요청을 나타내는 개체와 외부 이벤트의 영향을 받는 활동을 받는 작업 대리자입니다.

onActivityExport
Action<Activity,Object>

나가는 요청을 나타내는 개체와 외부 이벤트의 영향을 받는 활동을 받는 작업 대리자입니다.

반환

DiagnosticSource가 알림 전송을 완료하기 전에 수진자가 알림 수신을 중지할 수 있는 인터페이스에 대한 참조입니다.

설명

가 null이 아닌 경우 isEnabled 일부 이벤트는 효율성을 위해 건너뛸 수 있습니다.

공급자가 프로세스 외부에서 작업을 가져오거나 내보낼 때 호출되는 'onActivityImport' 및 'onActivityExport' 메서드를 제공할 수도 있습니다(예: HTTP 요청). 이러한 메서드는 활동을 가져오거나 내보낸 후 호출되며 정책을 추가하기 위해 활동 또는 나가는 요청을 수정하는 데 사용할 수 있습니다.

적용 대상