TraceFilter.ShouldTrace 方法

定义

在派生的类中进行重写时,确定跟踪侦听器是否应跟踪事件。

public:
 abstract bool ShouldTrace(System::Diagnostics::TraceEventCache ^ cache, System::String ^ source, System::Diagnostics::TraceEventType eventType, int id, System::String ^ formatOrMessage, cli::array <System::Object ^> ^ args, System::Object ^ data1, cli::array <System::Object ^> ^ data);
public abstract bool ShouldTrace (System.Diagnostics.TraceEventCache? cache, string source, System.Diagnostics.TraceEventType eventType, int id, string? formatOrMessage, object?[]? args, object? data1, object?[]? data);
public abstract bool ShouldTrace (System.Diagnostics.TraceEventCache cache, string source, System.Diagnostics.TraceEventType eventType, int id, string formatOrMessage, object[] args, object data1, object[] data);
abstract member ShouldTrace : System.Diagnostics.TraceEventCache * string * System.Diagnostics.TraceEventType * int * string * obj[] * obj * obj[] -> bool
Public MustOverride Function ShouldTrace (cache As TraceEventCache, source As String, eventType As TraceEventType, id As Integer, formatOrMessage As String, args As Object(), data1 As Object, data As Object()) As Boolean

参数

cache
TraceEventCache

包含跟踪事件的信息的 TraceEventCache

source
String

源的名称。

eventType
TraceEventType

TraceEventType 值之一,指定引发跟踪的事件类型。

id
Int32

跟踪标识符编号。

formatOrMessage
String

写入由 args 参数指定的变量数组时使用的格式,或者要写入的消息。

args
Object[]

参数对象的数组。

data1
Object

跟踪数据对象。

data
Object[]

跟踪数据对象的数组。

返回

若要跟踪指定的事件,则为 true;否则为 false

示例

下面的代码示例演示如何重写 方法, ShouldTrace 以指示当事件的跟踪事件类型等于 TraceEventType.Error时应进行跟踪。

public ref class ErrorFilter : TraceFilter
{
public:
    virtual bool ShouldTrace(TraceEventCache^ cache, String^ source,
        TraceEventType eventType, int id, String^ formatOrMessage,
        array<Object^>^ args, Object^ data, array<Object^>^ dataArray) override
    {
        return eventType == TraceEventType::Error;
    }
};
public class ErrorFilter : TraceFilter
{
    override public bool ShouldTrace(TraceEventCache cache, string source,
        TraceEventType eventType, int id, string formatOrMessage,
        object[] args, object data, object[] dataArray)
    {
        return eventType == TraceEventType.Error;
    }
}
Public Class ErrorFilter
    Inherits TraceFilter

    Public Overrides Function ShouldTrace ( cache As TraceEventCache, _
                source As String, eventType As TraceEventType, _
                id As Integer, formatOrMessage As String, _
                args As Object(), data As Object, _
                dataArray As Object() ) As Boolean
        If eventType = TraceEventType.Error Then
            Return True
        Else
            Return False
        End If
    End Function
End Class

实施者说明

如果应跟踪由传递的参数指定的事件,则此方法的实现应返回 true 。 否则,该方法应返回 false。 例如,仅允许错误事件传递到侦听器的筛选器应检查 eventType 参数,并在跟踪事件类型级别设置为 Error 或更高时返回 true ;否则,它应返回 false

方法的实现应准备好在以下参数中处理null:、、datadata1formatOrMessagecacheargs 如果参数值为 null,则参数不是 事件的一部分。 例如,如果 args 参数为 null,则表示事件没有任何参数。 data如果 参数为 null,则存在一个或没有数据对象。 如果有一个数据对象,则会在 参数中找到 data1 它。 区分单个数据对象和数据对象数组的原因是为了性能。 如果只跟踪一个对象,则没有理由创建对象数组,就像通常的情况一样。 data如果参数不是 null,则data1参数也不得为 null

可以保证 source 参数不是 null ,也不是空字符串 (“”) 。

方法的实现可以选择引发以下异常:

适用于